在PHP中,包含外部文件的方式有两种,include和require。它们之间有什么区别?如果文件不存在或者发生错误,require会产生E_COMPILE_ERROR级别的错误,程序停止运行。而include只会产生警告,脚本会继续执行。这是它们之间的主要区别。在其他方面,require基本上等同于include。被包含的文件首先根据参数给出的路径查找,如果没有给出目录(只给出文件名),则根据include_path指定的目录查找。如果在include_path下没有找到该文件,include将在调用脚本文件的目录和末尾的当前工作目录中查找它。如果定义了路径,无论是绝对路径还是当前目录的相对路径,include_path都会被完全忽略。include_path是在php.ini中定义的,当一个文件被包含时,它包含的代码从include所在的行继承变量作用域。从那里开始,调用文件中该行可用的任何变量在被调用文件中也可用。但是,包含文件中定义的所有函数和类都具有全局作用域。除了普通的require和include,还有require_once和include_once。它们的作用是:如果文件已经被包含,则不再被包含。.顾名思义,includeonlyonce可以用于脚本执行过程中同一个文件可能被include多次,而你又想保证只被include一次,避免函数重定义、变量等问题重新分配等。让我们看一些例子://a.phpdoesnotexistinclude"a.php";//警告//需要“a.php”;//错误回声111;//使用include时会输出111//file1.php只有一行代码echo'file1';require_once'includeandrequire/file1.php';//file1require_once'includeandrequire/file1.php';//notinginclude_once'includeandrequire/file1.php';//notinginclude_once'includeandrequire/file1.php';//notingrequire'includeandrequire/file1.php';//file1require'includeandrequire/file1.php';//file1require'includeandrequire/file1.php';//file1require'includeandrequire/file1.php';//file1我们可以看到,当第一个_once加载成功后,不管是require_once还是include_once,这个文件都不会再加载了。如果没有_once,文件将被重复加载。file2.php
