引入文件说明:
- require函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。
- include函数一般放在流程控制的处理部分中。PHP程序网页在读到 include的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
- include有返回值,而require没有。
- “require”的工作方式是为了让PHP程序得到更高的效率,当它在同一个PHP网页中解释过一次后,第二次出现便不会再解释,这是它的优点。不过严格来说,这也是它的唯一的缺点,因为它不会重复解释引入的文件,所以当PHP网页中使用循环或条件语句来引入文件时,“require”则不会做任何的改变。当有类似这样的情形时,就必须使用“include”命令来引入 文件了。
- 当PHP遇到一个利用“include”方式引入的文件,它就会解释一次;遇到第二次时,PHP还是会重新解释一次。与“require”相比,“include”的执行效率则会下降许多;而且当引入文件中包含了用户自定义的函数时,PHP在解释的过程中会发生函数重复定义的问题。不过“include”也不是没有优点的,因为在PHP网页中,它会每遇到一次“include”命令就会重复解释一次,所以非常适合使用在循环或条件判断的语句里。
- “include_once()”函数和“require_once()” 函数,会先检查目标档案的内容是不是在之前就已经导入过了,如果是,便不会再次重复导入同样的内容。
另外路径说明:
dirname(__FILE__)由两部分组成,__FILE__ 魔术变量和 dirname() 函数。__FILE__是当前脚本的绝对路径,通过dirname() 函数后,就可以获得脚本所在目录的绝对路径。
举个栗子,有个hello.php 文件,其部署在服务器的目录是:/home/www/website/hello.php
那么,
- __FILE__ 的值就是:/home/www/website/hello.php
- dirname(__FILE__) 返回就是:/home/www/website/
如果我们在hello.php 用 __DIR__全局变量,就可以直接获得所在目录的绝对路径:/home/www/website/,和 dirname(__FILE__)效果完全一样。
在实现同样功能的情况下,dirname(__FILE__)多了一层函数调用。所以, __DIR__比 dirname(__FILE__) 在效率上有优势。