在php中引入文件有两种方法:(1) require (2) include
不同点
一、引用文件的方式
require
通常放在php程序的最前面,在编译的时候就会引入所指定的文件。
include
一般放到代码中,只有在程序运行到该方法时才会将文件引入。
总结:都是引入文件使用,使用位置没有明确定义,同样可以在php程序的最前面,使用include导入文件;反之require也可以用于程序中。
二、是否有返回值
require
没有返回值
include
有返回值
总结:略
三、处理错误的方式
require
require一个文件存在错误的话,那么程序就会中断执行,并显示致命错误
include
include一个文件存在错误的话,那么程序不会终端,而是继续执行,显示一个错误警示
总结:include容错更强,这也是一中两者使用位置的原因
相同点
一、变量的作用域
被包含文件的作用域和php include的方法所处的用于域一样。如果在某一个函数中include某个文件,则该文件中的变量作用域范围就是在函数内。
vars.php
<?php
$color = "green";
$fruit = "apple";
?>
includeTest.php
<?php
foo();
echo " a {$color} {$fruit}";
function foo(){
global $color;
include "./vars.php";
echo " a {$color} {$fruit}";
}
?>
总结:includeTest.php文件foo函数打印出来的东西是:a green apple;echo " a {$color} {$fruit}";打印出来的是 a green
include "预定义的模板";
$content = ob_get_contents();
ob_end_clean();
不同点
一、引用文件的方式
require
通常放在php程序的最前面,在编译的时候就会引入所指定的文件。
include
一般放到代码中,只有在程序运行到该方法时才会将文件引入。
总结:都是引入文件使用,使用位置没有明确定义,同样可以在php程序的最前面,使用include导入文件;反之require也可以用于程序中。
二、是否有返回值
require
没有返回值
include
有返回值
总结:略
三、处理错误的方式
require
require一个文件存在错误的话,那么程序就会中断执行,并显示致命错误
include
include一个文件存在错误的话,那么程序不会终端,而是继续执行,显示一个错误警示
总结:include容错更强,这也是一中两者使用位置的原因
相同点
一、变量的作用域
被包含文件的作用域和php include的方法所处的用于域一样。如果在某一个函数中include某个文件,则该文件中的变量作用域范围就是在函数内。
vars.php
<?php
$color = "green";
$fruit = "apple";
?>
includeTest.php
<?php
foo();
echo " a {$color} {$fruit}";
function foo(){
global $color;
include "./vars.php";
echo " a {$color} {$fruit}";
}
?>
总结:includeTest.php文件foo函数打印出来的东西是:a green apple;echo " a {$color} {$fruit}";打印出来的是 a green
foo函数中声明$color为全局变量,不是vars.php中定义的$color的变量。当引入vars.php后,将vars.php中的$color变量赋值给全局变量。
二、使用技巧
ob_start();include "预定义的模板";
$content = ob_get_contents();
ob_end_clean();