PHP的$GLOBALS
数组提供对所有全局变量的访问,例如
<?php
$foo = 'hello';
function myFunc() {
echo $GLOBALS['foo']; // prints "hello"
}
?>
现在我必须处理来自其他人的一些代码,这些代码直接向数组添加元素以使其全局可用(没有相应的变量),如下所示:
<?php
function doSomething() {
// $newData is NOT existing anywhere!
$GLOBALS['newData'] = 'Hello World!';
// now $GLOBALS['newData'] is available anywhere else w/o actual variable
}
?>
到目前为止,我从未见过$GLOBALS
阵列的这种特定用法,并且想知道它是否被认为是“安全”或“好”? PHP manual没有说明写入这个数组,只是关于从中读取数据。
答案 0 :(得分:-1)
意见或许,但如果您正在寻找定义用于应用程序其他部分的常量,我认为最好使用define
而不是$ GLOBALS数组。
答案 1 :(得分:-3)
<?php
function doSomething() {
$_POST['__newData'] = 'Hello World!';
}
doSomething();
echo $_POST['__newData'];
?>