区别 1.include,require是语言结构,include_once,require_once是函数 2.include,include_once找不到文件时报warnning;require,require_once找不到文件时报fatal error; 相同点 1.只给出了文件名时搜索路径相同:include_path->调用文件的当前目录->当前工作目
区别
1.include,require是语言结构,include_once,require_once是函数
2.include,include_once找不到文件时报warnning;require,require_once找不到文件时报fatal error;
相同点
1.只给出了文件名时搜索路径相同:include_path->调用文件的当前目录->当前工作目录。
举个栗子: /var/www/目录下的a.php文件包含了x目录下面的b.php文件,b.php文件include|require[_once]了一个f.php文件,那么php首先在/var/www/目录下进行搜索,搜索不到在去/var/www/x/目录下进行搜索。
2.当给出文件的相对路径时都只会从最外层的文件的当前目录搜索。
例如:/var/www/目录下面的a.php文件包含了x目录下面的b.php文件,b.php文件include|require[_once]了一个./lib/f.php文件,那么php只会在/var/www目录下面的lib目录搜索f.php文件
notice
1.require_once,include_once返回值
第一次找到对应的文件true,找不到返回false;
后面无论找不找的到都返回true,因为在EG(included_files)已经包含这个文件了;
2.在使用apc的情况下,require_once和include_once可能会出现重复申明的情况。
原文地址:include include_once require require_once对比, 感谢原作者分享。