在php函数中同时使用所有全局变量
我有一个包含大约50个全局变量的php脚本。 我有大约18个函数需要全局变量 在大多数函数中,我需要将近40个全局变量。 我现在将其包括为:在php函数中同时使用所有全局变量,php,function,variables,global,globals,Php,Function,Variables,Global,Globals,我有一个包含大约50个全局变量的php脚本。 我有大约18个函数需要全局变量 在大多数函数中,我需要将近40个全局变量。 我现在将其包括为: function example1() { global $1, $2, $3, ..... $40; } function example2() { global $1, $2, $3, ..... $40; } 有没有更简单的方法 例如,一次包含所有全局变量 也许是阵列 我希望
function example1() {
global $1, $2, $3, ..... $40;
}
function example2() {
global $1, $2, $3, ..... $40;
}
有没有更简单的方法
例如,一次包含所有全局变量
也许是阵列
我希望听到一些好的建议 我把很多变量交给了global。我现在了解到,我必须在&to-for-each循环中直接修改数组中的数据,而不是声明它们并尝试将它们交给全局变量 为了能够直接修改循环中的数组元素,请在$value之前加上&。在这种情况下,将通过引用指定值
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // break the reference with the last element
?>
谢谢你的帮助!我可以删除很多代码和变量…您可以简单地包括所有全局变量
function myFunc() {
foreach ($GLOBALS as $n => $v) {
global $$n;
}
... code using any global variable
}
或者您可以包含自己预定义的子集
$myGlobals = array('n1','n2');
function myFunc() {
foreach ($GLOBALS['myGlobals'] as $n) {
global $$n;
}
... code using any global variable named in $myGlobals
}
PHP有一个提取函数,它使用数组中的所有元素的键将其转换为变量,也就是说,由于$GLOBALS变量包含所有全局变量,所以只需在函数中提取它
$name = 'John Doe';
function myFunction(){
extract($GLOBALS);
echo $name;
}
在会话中保存这些全局变量。只是不,不!不要这样做你有什么建议?首先,不要这样做。我不知道你想做什么,但这是最糟糕的解决方案。如果您仍然需要,请将所有这些变量放入数组中,而只使用一个全局数组。由于您似乎将自己编码到了一个黑暗的角落,因此,始终存在全局可用的$GLOBALS数组一个关联数组,其中包含对当前在全局范围中定义的所有变量的引用