php - PHP 中 require_once 的范围是什么?

标签 php scope server-side-includes require-once

简单问题:require_once 的范围是全局的吗?

例如:

<?PHP

require_once('baz.php');

// do some stuff
foo ($bar);

function foo($bar) {
    require_once('baz.php');
    // do different stuff
}

?>

当 foo 被调用时,它会重新解析 baz.php 吗? 或者它是否依赖于主 php 文件中已经需要的文件(类似于对同一个包含文件连续调用 require_once 两次) )?

我之前看过这个帖子,但它并没有完全回答问题:

Should require_once "some file.php" ; appear anywhere but the top of the file?

感谢您的帮助!

最佳答案

require_once() 基本上依赖于物理文件来确定它是否已被包含。因此,调用 require_once() 的上下文并不重要,重要的是之前是否需要该物理文件。

在上面的代码中,您的 foo() 函数不会重新解析 baz.php,因为它将与之前包含的文件相同顶部。

但是,根据是将其包含在 foo() 内还是将其包含在顶部,您将得到不同的结果,因为作用域将在 require_once() 时应用> 确实成功了。

关于php - PHP 中 require_once 的范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2679602/

相关文章:

php - 使用CSS显示隐藏内容和添加图片效果

php - 解析 php 中的 localhost,以便可以在虚拟机外部查看

php - 存储当前日期时,应该在 web 应用程序中设置还是在数据库中设置?

ruby-on-rails - 具有组合属性的 Rails 作用域

php - 在不使用 mod_rewrite 的情况下运行没有扩展名的 PHP?

php - include_path 不递归?

php - 从钱包系统计算可用余额,不包括过期信用

javascript - 找不到重构警报的方法(练习)

javascript - 比较数组以确定获胜条件