在PHP中include和require的作用相似,都是包含并运行指定文件。但两者存在一些差别。
include
被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找。如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找。如果最后依然未找到,会发出E_WARNING
警告。
require
作用和include
完全一样,但是如果文件未找到,会产生 E_COMPILE_ERROR
级别的错误。
include和require区别
在未找到文件时include
发出E_WARNING
警告,而require
未找到文件时会产生 E_COMPILE_ERROR
级别的错误。
include_once和require_once
作用和include/require相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。
如果载入文件失败,include_once和include一样,发出E_WARNING
警告。require_once和require一样,未找到文件时会产生 E_COMPILE_ERROR
级别的错误。
取舍
比如是系统配置,缺少了,网站不让运行,自然用require,如果是某一段统计程序,少了,对网站只是少统计人数罢了,不是必须要的,可以用include
而加不加once是效率上的区别,加上once,虽然系统帮你考虑了只加载一次,但系统的判断会是效率降低,因此,更应该在开发之初,就把目录结构调整好,尽量不要用_once的情况。