如何防止在文件被 include() ed 时使用变量
How to prevent variables from being used when a file is include() ed
我知道标题有点混乱。基本上我想防止一个文件中的一个变量被我 include() 到另一个文件中被使用。
示例:
File1.php:
<?php
$foo = "Bar";
?>
File2.php:
<?php
include("File1.php");
echo $foo;
?>
在上面的例子中File2.php显然会回显"Bar";但是,我想在仍然能够访问 File1.php 内的任何功能的同时防止这种情况发生。理想情况下,当文件被 included() ed.
时,在函数外部声明的变量不应该是可访问的
使用PHPnamespaces:
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
?>
我知道标题有点混乱。基本上我想防止一个文件中的一个变量被我 include() 到另一个文件中被使用。 示例:
File1.php:
<?php
$foo = "Bar";
?>
File2.php:
<?php
include("File1.php");
echo $foo;
?>
在上面的例子中File2.php显然会回显"Bar";但是,我想在仍然能够访问 File1.php 内的任何功能的同时防止这种情况发生。理想情况下,当文件被 included() ed.
时,在函数外部声明的变量不应该是可访问的使用PHPnamespaces:
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
?>