包含文件和抑制副作用

时间:2014-05-25 15:58:20

标签: php scope

想象一下,我有两个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无法修改,我是否可以安全地将script.php纳入inc.php

1 个答案:

答案 0 :(得分:0)

设置常量:

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

常量是全局的,但不能定义2次。 如果在“db.php”中定义PASSWORD常量,则不能在“script.php”中的PASSWORD中重新定义。