php大于-2020最新PHP笔试题(附答案)

一二三四上一:1.消息系列2.成功系列3.重定向系列4.请求错误系列5.服务器端错误系列

302:临时转移成功,请求的内容已移动到新位置 403:严格禁止访问 500:服务器内部错误 401 表示未经授权。

4、Linux下构建压缩包和解压包的命令

Tar.gz:
打包: tar czf file.tar.gz file.txt
解压: tar xzf file.tar.gz
Bz2:
打包: bzip2 [-k] 文件
解压: bunzip2 [-k] 文件
Gzip(只对文件,不保留原文件)
打包: gzip file1.txt
解压: gunzip file1.txt.gz
Zip: -r 对目录
打包: zip file1.zip file1.txt
解压: unzip file1.zip

5、请写出数据类型(intcharvarchardatetimetext)的含义; varchar 和 char 有什么区别?

int 整型 char 定长字符 Varchar 变长字符 Datetime 日期时间类型 Text 文本类型 Varchar 与 char char 和 char 的区别在于定宽字符类型。 分配多少空间,就占用多少空间。 Varchar 是一种可变宽度字符类型。 内容有多少就占用多少空间,可以有效节省空间。 由于varchar类型是可变的,当数据宽度变化时服务器要执行额外的操作,因此效率比char类型低。

6.MyISAM和InnoDB之间的基本区别是什么? 索引结构如何实现?

MyISAM类型不支持事务和表锁,并且容易产生碎片。 需要经常优化,读写速度更快,而InnoDB类型支持事务、行锁,具有崩溃恢复能力。 读写速度比MyISAM慢。

创建索引:alerttabletablenameaddindex(`数组名称`)

7. 不使用cookie,向客户端发送cookie。

理解:当session_start()开启时,会生成一个常量SID。 当COOKIE打开时,该常量为空。 当 COOKIE 关闭时,PHPSESSID 的值存储在该常量中。 通过在URL后面添加SID参数来传递SESSIONID的值,客户端页面就可以使用SESSION上面的值。 当客户端打开COOKIE,服务器打开SESSION。当浏览器第一次请求时,服务器会发送一个COOKIE给浏览器来存储SESSIONID。 当浏览器第二次请求时,会存储已经存在的SESSIONID。

8.isset()和empty()的区别

Isset 判断变量是否存在。 可以传入多个变量,如果其中一个变量不存在,则返回false。 Empty 判断变量是否为空,则为 false。 只能传递一个变量。 如果为空,则返回true。

9、如何在页面之间(至少两种形式)传递变量? GET、POST、COOKIE、SESSION、隐藏表单

1. 编写与 URL 匹配的正则表达式。

‘/^(https?|ftps?)://(www).([^./]+).(com|cn|org)(/[w-./?%&=]*)?/i’

2、请写出一个常用的排序算法,并用PHP实现冒泡排序,将字段$a=array()从小到大排序。

常见的排序算法:冒泡排序、快速排序、简单选择排序、堆排序、直接插入排序、希尔排序、归并排序。

冒泡排序方法的基本思想是对要排序的记录的关键字进行多次扫描,从后到前(降序)。 当发现两个相邻关键字的顺序不符合排序所需的规则时,将对两条记录进行交换。 这样,关键字较小的记录就会从前往前逐渐连接起来,就像水底向下漂浮的气泡一样,所以这种算法也称为冒泡排序法。

// 冒泡排序法
Function mysort($arr){
 For($i=0; $i<count($arr); $i++){
  For($j=0; $j $arr[$j+1]){
    $tmp=$arr[$j];
    $arr[$j]=$arr[$j+1];
    $arr[$j+1]=$tmp;
            }
        }
    }
 Return $arr;
}
$arr=array(3,2,1);
print_r(mysort($arr));

3. 请解释一下PHP中按值传递和按引用传递的区别。 什么时候传递值,什么时候传递引用?

按值传递:函数范围内对值的任何更改在函数外部都会被忽略

通过引用传递:对函数范围内的值的任何更改也会反映在函数外部

相同点和不同点: 当按值传递时,PHP 必须复制该值。 特别是对于小字符串和对象,这可能是一项昂贵的操作。 通过引用传递不需要复制值,这对于性能提升非常有用。

PHP中error_reporting的作用是什么?

设置 PHP 的错误报告级别并返回当前级别。

请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确。

if(isset($_POST['action']) && $_POST['action']==’submitted’){
 $email=$_POST['email'];
 if(!preg_match(“/^[0-9a-zA-Z-]+@[0-9a-zA-Z-]+(.[0-9a-zA-Z-]+){1,3}$/”,$email)){
  echo “电子邮件检测失败”;
 }else{
  echo “电子邮件检测成功”;
 }
}

 

用PHP描述快速排序算法,对象可以是链表吗?

原理:快速排序采用分而治之的策略,将待排序的数据序列划分为两个子序列。 具体步骤是:

(1) 从序列中选取一个元素并将其称为“基线”。

(2) 扫描一次数组,将所有比“base”小的元素排列在该base的上面,所有比“base”大的元素排列在该base的旁边。

(3) 通过递归将每个子序列定义为更小的序列,直到大于参考值的元素子数组和小于参考值的元素子数组都排序完毕。

//快速排序(数组排序)
function QuickSort($arr){
 $num = count($arr);
 $l=$r=0;
 for($i=1;$i<$num;$i++){
  if($arr[$i]  1){
  $left = QuickSort($left);
 }
 $new_arr = $left;
 $new_arr[] = $arr[0];
 if($r > 1){
  $right = QuickSort($right);
 }
 for($i=0;$i<$r;$i++){
  $new_arr[] = $right[$i];
 }
 return $new_arr;
}

使用 PHP 来描述顺序搜索和二分搜索(也称为二分搜索)算法。 顺序查找必须考虑效率,对象可以是有序链表。

//二分查找(数组里查找某个元素)
function bin_sch($array, $low, $high, $k){
 if ($low <= $high){
  $mid = intval(($low+$high)/2);
  if ($array[$mid] == $k){
   return $mid;
  }elseif ($k < $array[$mid]){
   return bin_sch($array, $low, $mid-1, $k);
  }else{
   return bin_sch($array, $mid+1, $high, $k);
  }
 }
 return -1;
}
//顺序查找(数组里查找某个元素)
function seq_sch($array, $n, $k){
 $array[$n] = $k;
 for($i=0; $i<$n; $i++){
  if($array[$i]==$k){
   break;
  }
 }
 if ($i<$n){
  return $i;
 }else{
  return -1;
 }
}

通过编写二维链表排序算法函数,可以通用,可以调用PHP外部函数(array_multisort())

//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序
function array_sort($arr, $keys, $order=0) {
 if (!is_array($arr)) {
  return false;
 }
 $keysvalue = array();
 foreach($arr as $key => $val) {
  $keysvalue[$key] = $val[$keys];
 }
 if($order == 0){
  asort($keysvalue);
 }else {
  arsort($keysvalue);
 }
 reset($keysvalue);
 foreach($keysvalue as $key => $vals) {
  $keysort[$key] = $key;
 }
 $new_array = array();
 foreach($keysort as $key => $val) {
  $new_array[$key] = $arr[$val];
 }
 return $new_array;
}

请使用空格作为间隔,将字符串'AppleOrangeBananaStrawberry'分割成一个链表$fruit。

*链表中所有元素均为大写字母,并按字母顺序排序

class sort { 
 private $str; 
 public function __construct($str) { 
  $this->str=strtolower($str); 
 } 
 private function explodes() { 
  if(empty($this->str)) return array(); 
  $arr=explode(" ",$this->str); 
  return is_array($arr)?$arr:array($arr); 
 } 
 public function sort() { 
  $explode=$this->explodes(); 
  sort($explode); 
  return $explode; 
 } 
} 
$str='Apple Orange Banana Strawberry'; 
$sortob=new sort($str); 
var_dump($sortob->sort());

用户输入字符串$string,要求$string只能包含小于0的数字和英文冒号。 请使用正则表达式进行验证。 如果$string不符合要求,会返回错误信息。

class regx { 
 public static function check($str) { 
 if(preg_match("/^([1-9,])+$/",$str)) { 
  return true; 
 } 
 return false; 
 } 
} 
$str="12345,6"; 
if(regx::check($str)) { 
echo "suc"; 
} else { 
echo "fail"; 
}

请编写一个程序在服务器上创建一个文件fruit.dat,将论文3中得到的链表写入该文件,然后编写一个程序从文件@authorzhuwenqiong中读取并恢复链表

class sort { 
 private $str; 
 public function __construct($str) { 
  $this->str=strtolower($str); 
 } 
 private function explodes(){ 
  if(empty($this->str)) return array(); 
  $arr=explode(" ",$this->str); 
  return is_array($arr)?$arr:array($arr); 
 } 
 public function sort() { 
  $explode=$this->explodes(); 
  sort($explode); 
  return $explode; 
 } 
} 
class file { 
 private $sort=null; 
 private $filepath; 
 public function __construct($arrobj,$path) { 
  $this->sort=$arrobj; 
  $this->filepath=$path; 
 } 
 private function getresource($filename,$mode) { 
  return fopen($this->filepath.$filename,$mode); 
 } 
 private function closeresource($resource) { 
  fclose($resource); 
 } 
 public function savefile($filename) { 
  $arr=$this->sort->sort(); 
  $fopen=$this->getresource($filename,"a+"); 
  if(!$fopen){ 
   echo "文件打开失败!";
   exit; 
  } 
  var_dump($arr); 
  foreach($arr as $key=>$value) { 
   fwrite($fopen,$value."n"); 
  } 
  $this->closeresource($fopen); 
 } 
 public function readfile($filename) { 
  $this->savefile($filename); 
  $fopen=$this->getresource($filename,"r"); 
  if(!$fopen){ 
   echo "文件打开失败!";exit; 
  } 
  $arr=array(); 
  while(!feof($fopen)) { 
   $get=fgets($fopen); 
   if(!empty($get)) 
    $arr[]=str_replace("n","",$get); 
  } 
  $this->closeresource($fopen); 
 return $arr; 
 } 
} 
$file=new file(new sort('Apple Orange Banana Strawberry'),"E:\"); 
$arr=$file->readfile("fruit.dat"); 
var_dump($arr); 

Singleton模式,创建链接到mysqli数据库的单例对象

class Db { 
 private static $instance; 
 public $handle; 
 Private function __construct($host,$username,$password,$dbname) { 
  $this->handle=NULL; 
  $this->getcon($host,$username,$password,$dbname); 
 } 
 public static function getBb() { 
  self::$instance=new Db(); 
  return self::$instance; 
 } 
 private function getcon($host,$username,$password,$dbname) { 
  if($this->handle!=NULL){ 
   return true; 
  } 
  $this->handle=mysqli_connect($host,$username,$password,$dbname); 
 } 
}

在windows平台上,ApacheHttpServer无法启动。 排查思路有哪些?

检查apache使用的80端口是否被占用。 如果被占用,先停止占用80端口的服务,然后启动apache服务器。

PHP会话扩展默认在哪里存储会话数据?

A)SQLite数据库

B)MySQL数据库

C)共享内存

D)文件系统

E)会话服务器

如果要手动加载一个类,C语言中下列哪个函数声明是正确的

A)函数自动加载($class_name)

B)function__autoload($class_name,$file)

C)function__autoload($class_name)

D)function_autoload($class_name)

E)functionautoload($class_name,$file)

PHP程序使用utf-8编码。 下面程序的输出结果是什么? 乙


A)9B)13(GBK)C)18D)17(utf8)

PHP链表相关的函数你知道哪些?

php中读取文件内容的几种方法和函数?

打开该文件并稍后阅读。 fopen()fread()

打开读取一次并完成file_get_contents()

在下面的程序中,当输入 111 时,变量 str 的值是多少?

if( ! $str ) { echo 111; }

$str 的值为:0、'0'、false、null、""

关于PHP你了解哪些技术(smarty等)?

Smarty、jquery、ajax、memcache、div+css、js、mysqli、pdo、svn、thinkphp、brophp、yii

您熟悉哪些 PHP Summit 系统?

迪斯库兹

您熟悉哪些PHP商城系统?

商城

您熟悉哪些 PHP 开发框架?

布罗PHP、ThinkPHP

告诉我们您对缓存技术的理解吗?

1、缓存技术是将动态内容缓存到文件中,在一定时间内访问动态页面可以直接调用缓存的文件,无需重新访问数据库。

2.使用memcache进行缓存。

你知道哪些设计模式?

鞋厂模式、策略模式、单元素模式、观察者模式、命令链模式

说说你对代码管理的理解? 您经常使用这些代码版本控制软件吗?

一般来说,一个项目是由一个团队开发的。 每个人将自己写好的代码提交到版本服务器,项目负责人根据版本进行管理,方便版本控制,提高开发效率,保证需要的时候可以返回到旧版本。 。

常用的版本控制器:SVN

说说你对SVN的理解? 共同点和不同点?

SVN是一个版本控制器。 程序员开发的代码提交到版本服务器集中管理。

SVN的优点:代码集中管理,版本控制方便,操作相对简单,权限控制方便。

缺点:不能随意更改服务器项目文件夹。

如何找到PHP.ini的路径?

一般在PHP安装目录下,或者在window系统的windows目录下。

PHP加速模式/扩展? PHP调试模式/工具?

ZendOptimizer 加速扩展

调试工具:xdebug

你常用什么mysql命令?

进入mysql管理命令行?

mysql -uroot -p 输入密码

显示数据库; 这个命令有什么作用?

显示当前mysql服务器中有哪些数据库

显示创建的数据库mysql; 这个命令有什么作用?

显示创建数据库的sql语句

显示创建表用户; 这个命令有什么作用?

显示创建表的sql语句

descuser;这个命令有什么作用?

查询用户表的结构

解释select*fromuser;这个命令的作用是什么?

获取选择相关信息

显示进程列表; 这个命令有什么作用?

显示正在运行的线程

SHOWVARIABLES;这个命令有什么作用?

显示系统变量和值

SHOWVARIABLESlike '%conn%';这个命令的作用是什么?

显示包含conn的系统变量名的值

LEFTJOIN要写一个SQL语句吗?

SELECT A.id,A.class FROM A LEFT JOIN B ON A.cid=B.id

in、notni、exist 和 notexist 的作用和区别是什么?

其中

诺丁不在其中

存在

注意 不存在

如何找到数据库的配置文件路径?

在数据库安装目录下,my.ini

讲解一下Linux下安装PHP的过程?

安装软件之前php大于,先安装编译工具gcc和gcc-c++

复制源码包,解压并解压

cd /lamp/php 进入php目录

./configure–prefix=/usr/local/php–with-config-file-path=/usr/local/php/etc 指定安装目录和配置文件目录

进行编译

进行安装安装

讲解一下Linux下安装Mysql的过程?

Groupadd mysql 添加一个用户组mysql
Useradd -g mysql mysql 添加一个mysql用户指定分组为mysql
Cd /lamp/mysql 进入mysql目录
./configure –prefix=/usr/local/mysql/ –with-extra-charsets=all
Make
Make all

解释一下Linux下安装apache的过程?

Cd /lamp/httpd 进去apache软件目录
./configure –prefix=/usr/local/apache2/ –sysconfdir=/etc/httpd/ –with-included-apr
Make
Make all

HTML/CSS/DIV/Javascript:

1.设计一个页面(4个div,第一个div宽960px居中;第2-4个div分为3等份960px;)

Body{ Text-align:center; Margin:0; Padding:0; }
#box{ Width:960px; Margin:0 auto; }
.small{ Width:320px; Float:left; }

使用 javascript 获取输入的值? 获取输入的属性?

document.getElementById(‘name’).value;
document.getElementById(‘name’).type;

使用 Jquery 获取输入值? 获取输入的属性?

$(“input[name='aa']“).val();
$(“input[name='aa']“).attr(‘type’);

请写一段ajax提交的js代码,或者写一下ajax提交的流程逻辑。

var xmlhttp;
if(window.XMLHttpRquest){
xmlhttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlhttp=new ActiveXObject(‘Microsoft.XMLHTTP’);
}
xmlhttp.open(‘GET’,’1.php?aa=name’,true);
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
var text=xmlhttp.responseText;
}
}
}
xmlhttp.send(null);

讲解cookie的设置和获取过程

设置COOKIE的值:

Setcookie(名称、值、保存时间、有效域);

获取值:$_COOKIE['name'];

面向对象中的socket和具体类有什么区别及其应用场景?

1、具有具体方法的类称为具体类。 具体类不一定只有具体方法。 具体方法必须使用abstract关键字定义。

2.所有接口都是具体方法,方法不需要抽象定义。

3、当同一类型的多个类需要设计下层时,通常设计为具体类。 当需要将多个异构类设计为下层时,通常设计为套接字。

采用面向对象的方法实现对象A继承对象B和C

接口B{...}

接口C{...}

类AimplementsB,C{...}

写下您在 Smarty 模板引擎中最常用的关键字

l 将一个数组的性别降低,写一个变化语句

Alerttableuseraddsexenum('0','1');

查询年龄在20岁到30岁之间的用户

选择*fromuser,其中年龄>20和年龄

如果是Web上经常访问的查询,那么如何优化上面的查询呢?

可以在where前面的数组age上建索引,也可以在句子上建存储过程。

echo()、print() 和 print_r() 之间有什么区别?

什么是模板技术,使 HTML 和 PHP 能够分开使用的模板?

模板技术是一种将程序的逻辑代码和界面分离的技术。

可以分离HTML和PHP的模板有:Smarty、Template、PHPlibTemplate、FastTemplate

对于流量大的网站,你们用什么方法来解决流量问题?

优化程序,优化数据库。 如果程序和数据库已经优化,可以采用以下解决方案:

1、判断当前服务器设备是否满足流量要求。

2、利用Memcache缓存技术将动态内容缓存到文件中,动态网页可以直接调用这些文件,无需访问数据库。

3. 禁止外部盗链。 外部盗链图片和文件会给服务器带来很大的负载压力。 可以使用refer严格禁止外部盗链,或者使用apache配置严格禁止外部盗链。

4.控制大文件的下载。 大文件的下载对于非SCSI硬盘来说会占用大量资源,导致服务器的响应能力下降。

5、使用不同主机分流主要流量,均衡服务器负载。

6、使用流量统计软件对网站流量进行统计分析。 您可以知道大量流量花在哪里以及哪些页面需要优化。

mysql_fetch_row() 和 mysql_fetch_array 有什么区别?

mysql_fetch_row() 从结果集中获取一行作为枚举字段,mysql_fetch_array() 从结果集中获取一行作为索引字段或关联链表,或两者兼而有之。

一种截取英文字符串无乱码的方法

Mb_substr();

使用PHP编写显示客户端IP和服务器IP的代码

获取客户端IP:$_SERVER("REMOTE_ADDR");

获取服务器IP:$_SERVER["SERVER_ADDR"];

有一个网页地址,比如PHP开发资源网的主页:,如何获取其内容?

获取网页内容:

$url=”http://www.phpres.com/index.html“;
$str=file_get_contents($url);
或 $ch=curl_init();
 curl_setopt($ch,CURLOPT_URL,’’);
 curl_setopt($ch,CURLOPT_HEADER,0);
 curl_exec($ch);
 curl_close($ch);

请编写一个函数来验证电子邮件的格式是否正确

function checkemail($email){
echo preg_match(‘/^[0-9a-zA-Z-]+@[0-9a-zA-Z-]+.[0-9a-zA-Z]+$/’,$email)?’email格式正确‘:’email格式不正确‘;
}

讲解如何获取当前执行脚本路径,包括获取的参数

使用 $_SERVER['SCRIPT_FILENAME'].$_SERVER['REQUEST_URI']; 获取当前页面的完整路径和参数。

获取参数:$_SERVER['QUERY_STRING'];

JS表单中弹出对话框的函数是什么? 获得输入焦点的函数是什么?

警报(); 重点();

编写一个函数计算两个文件的相对路径

如$a='/a/b/c/d/e.php';

$b='/a/b/12/34/c.php';

要估计$b相对于$a的相对路径,添加()

$a=”cnblogs.com/a/b/c/d/e.php”;

$b=”cnblogs.com/a/b/12/34/c.php”;

$ainfo=parse_url($a);
$binfo=parse_url($b);
 
$apath=ltrim($ainfo['path'],'/');
$bpath=ltrim($binfo['path'],'/');
 
$arr=explode('/',$apath);
$brr=explode('/',$bpath);
$flag=false;
for($i=0;$i<count($arr);$i++){
 if($arr[$i]!==$brr[$i]){
  $ab[$i]='..';
  if(!$flag){
   for($j=$i;$j<count($brr);$j++){
    $bb[]=$brr[$j];
   }
   $flag=true;
  }
 }
}
$cha=array_merge($ab,$bb);
$cha=implode('/',$cha);
print_r($cha); 

编写一个函数来遍历文件夹中的所有文件和子文件夹。

function my_scandir($dir){
     $files = array();
     if ( $handle = opendir($dir) ){
         while ( ($file = readdir($handle)) !== false ) {
             if ( $file != ".." && $file != "." ) {
             if ( is_dir($dir . "/" . $file) ) {
                     $files[$file] = scandir($dir . "/" . $file);
                 }else {
                     $files[] = $file;
                 }
             }
         }
         closedir($handle);
         return $files;
     }
}

数据库索引有多少种类型? 这些是什么? 什么时候应该使用索引?

普通索引、主键索引、唯一索引

并非所有数据库都以相同的方式使用索引。 一般情况下,只有当列中的数据被频繁查询时才需要在表上创建索引。

写下一些魔术并解释它们的效果?

$_REQUEST、$_POST、$_GET、$_COOKIE、$_SESSION、$_FILES 是什么意思?

链表中最好的下标类型是什么?为什么?

链表的下标最好是数字类型,因为数字类型处理得更快。

++i 和 i++ 哪个效率更高,为什么?

++i 比 i++ 更高效,因为 ++i 少了一个返回 i 的进程。

magic_quotes_gpc() 和 magic_quotes_runtime() 是什么意思?

Magic_quotes_gpc()位于php配置文件中。 如果设置为on,则会手动对POST、GET、COOKIE中的字符串进行通配符。 在 ' 之前添加

Magic_quotes_runtime() 是 php 中的一个函数。 如果该参数为true,则从数据库中取出的单冒号、双冒号、反斜杠将手动添加反斜杠以用于通配符。

框架中的单入口和多入口是什么,单入口之间有什么异同?

1、多入口是通过访问不同的文件来完成用户请求。

单个条目意味着Web程序的所有请求都定向到一个脚本文件。

2、单一入口,更容易控制权限,方便http请求的安全测试。

缺点:URL看起来不太美观,尤其对搜索引擎不友好。

您对Memcach的理解如何php大于,它的优势是什么?

Memcache是​​一种缓存技术,可以解析一定时间内的动态网页,然后保存到文件中。 动态网页在上次访问时直接调用该文件,而无需重新访问数据库。 使用memcache进行缓存的目的是为了提高网站的访问率,减轻高并发时服务器的压力。

Memcache的优点:稳定、配置简单、多机分布式存储、速度快。

对于关系数据库来说,索引是一个非常重要的概念。 请回答几个关于索引的问题:

a) 索引的目的是什么?

1.快速访问数据表中的特定信息,提高检索速度

2、创建唯一索引,保证数据库表中每一行数据的唯一性

3. 加速度表及表间连接

4、使用分组和排序谓词进行数据检索时,可以显着减少查询短发组和排序的时间。

b) 索引对数据库系统有哪些负面影响?

负面影响:创建和维护索引需要时间,随着数据量的减少而减少; 索引需要占用数学空间,不仅表需要占用数据空间,每个索引也需要占用数学空间; 对表进行操作时 增删改查时必须动态维护索引,降低了数据维护速度。

c) 数据表建立索引的原则是什么?

1、在最常用的数组上建立索引,缩小查询范围

2. 对经常使用且需要排序的数组建立索引

d) 什么情况下不宜建立索引?

1、对于很少涉及查询的列或者重复值较多的列不宜建立索引。

2.对于一些特殊的数据类型,不适合建立索引,比如文本数组(text)、取值范围较小的知识等。

在Web应用中,数据库的读取频率远低于写入频率。 MySQL如何优化来应对这种情况呢?

Memcache缓存技术用于将动态数据缓存到文件中。 访问动态页面时,直接调用缓存文件,无需重新访问数据库,从而减少数据库查询次数。

如果网站访问量较大,可以将数据库读写服务器分开,使用多台服务器处理数据库查询,使用较少的服务器处理数据库写入和更改。

包含和要求有什么区别?

1.include()每次执行文件时都必须读取并求值

require() 文件只处理一次(实际上是文件内容替换了 require() 语句)

2.require()一般放在PHP脚本程序的最前面

include() 的用法与 require() 相同。 它通常放置在过程控制的处理部分。 当PHP脚本文件读取include()语句时,其包含的文件被读入。这些方法可以改变程序的执行时间。 简化流程

3. require() 和 include() 语句是语言结构,而不是真正的函数。 它们可以像 PHP 的其他语言结构一样。

4. include_once() 和 require_once() 语句还在脚本执行期间包含并运行指定的文件。 与 include()require() 唯一的区别是,如果文件中的代码已经包含过,则不会再次包含。

5. require() 未能包含文件,停止执行,并给出错误(致命)

include() 通常用于动态包含。

一般情况下,文件是手动加载的。 虽然出现加载错误,但整个程序继续执行。