我知道,标题有点令人困惑。基本上我想防止一个文件中的变量,我将include()转换为另一个正在使用的文件形式。 例如:
File1.php:
<?php
$foo = "Bar";
?>
File2.php:
<?php
include("File1.php");
echo $foo;
?>
在上面的例子中,File2.php显然会回应&#34; Bar&#34 ;;但是,我想要在仍然能够访问File1.php中的任何函数的同时防止这种情况发生。理想情况下,当包含()编辑文件时,不应访问在函数外声明的变量。
答案 0 :(得分:2)
使用PHP namespaces:
File1.php:
<?php
namespace baz {
function foo() {
return "Bar";
}
}
namespace { // global code
$x = "XXX";
}
?>
File2.php:
<?php
include("File1.php");
echo $x; // outputs XXX
echo foo(); // Undefined
?>
要访问foo
,您必须使用use:
File2.php:
<?php
include("File1.php");
use function baz\foo;
echo foo(); // outputs Bar
?>