包括文件和抑制副作用



假设我有两个php脚本script.phpinc.php。(<?php略)

inc.php :

$foo = 'a';

script.php :

$foo = 'b'; // $foo is b
include 'inc.php'; // $foo is a

则在包含inc.php的时刻,变量$foo'a'覆盖。我希望可以包含没有副作用的文件。

最实用的是局部作用域:

inc.php (2) :

// $foo is b
{
    $foo = 'a'; // $foo is a
} // $foo is b

据我所知不存在这样的结构,我唯一能想到的是:

inc.php (3) :

// $foo is b
call_user_func(function() {
    $foo = 'a'; // $foo is a
}); // $foo is b
  1. 是否有其他(更好/更优雅)的方法使文件安全包含?
  2. 如果inc.php无法修改,我是否可以安全地将inc.php包含到script.php中?

设置常量:

defined('PASSWORD') or define('PASSWORD', 'value');

常量是全局的,但不能定义两次。如果您在"db.php"中定义了PASSWORD常量,则不能在"script.php"中的PASSWORD中重新定义。

最新更新