多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 包含语句 ### include `include` 语句包含并运行指定文件。 文件查找顺序: * 被包含文件先按参数给出的路径寻找。 * 如果没有给出目录(只有文件名)时则按照 `include_path` 指定的目录寻找。 * 如果在 `include_path` 下没找到该文件,在调用脚本文件所在的目录和当前工作目录下寻找。 如果最后仍未找到文件则会发出一条警告(E_WARNING), 脚本继续执行。 当一个文件被包含时,其中所包含的代码继承了 `include` 所在行的变量范围。 从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。 不过所有在包含文件中定义的函数和类都具有全局作用域。 ``` vars.php <?php $color = 'green'; $fruit = 'apple'; echo "I am vars.php" . PHP_EOL; ?> test.php <?php echo "A {$color} {$fruit}" . PHP_EOL; // A include 'vars.php'; include 'vars.php'; // include again echo "A {$color} {$fruit}" . PHP_EOL; // A green apple ?> ``` 如果 `include` 出现于调用文件中的一个函数里,则被调用的文件中所包含的所有代码将表现得如同它们是在该函数内部定义的一样。所以它将遵循该函数的变量范围。 ``` <?php function foo() { global $color; include 'vars.php'; echo "A {$color} {$fruit}" . PHP_EOL; } foo(); // A green apple echo "A {$color} {$fruit}" . PHP_EOL; // A green ?> ``` `include` 结合 `return` 语句 ``` db.php <?php $db = array( 'host' => 'localhost', 'user' => 'root', 'password' => '123456', 'port' => 3306, 'dbname' => 'test', ); return $db; ?> test.php <?php $db = include 'db.php'; var_dump($db); ?> ``` ### include_once 此行为和 `include` 语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。 ``` vars.php <?php $color = 'green'; $fruit = 'apple'; echo "I am vars.php" . PHP_EOL; ?> test.php <?php include_once 'vars.php'; include_once 'vars.php'; // include again echo "A {$color} {$fruit}" . PHP_EOL; // A green apple ?> ``` ### require 文件的查找方式和 `include` 一样,如果没有找到包含文件,则会发出致命错误(E_COMPILE_ERROR),脚本停止执行。 ### require_once 此行为和 `require` 语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。