gpt4 book ai didi

php - 声明一个全局数组

转载 作者:IT王子 更新时间:2023-10-29 00:22:03 24 4
gpt4 key购买 nike

嗨。我最近学习了 PHP,并试图声明一个全局数组,以便我可以在函数内部进行访问。但我似乎遗漏了一些东西,因为我收到错误“ undefined variable :”

这是我的代码:

global $second_array;
$second_array = array();

function operatii($v) {
$var1 = $second_array[count($second_array)-1];
$var2 = $second_array[count($second_array)-2];
$rez = null;

echo $var1 . $var2 . "este?";
}

for ($i = 0; $i < count($a); $i++){
if ($a[$i] === "+" || $a[$i] === "-" || $a[$i] === "*" || $a[$i] === "/" ) {
operatii($a[$i]);
} else {
array_push($second_array, $a[$i]);
}
}

我似乎可以在for循环中使用$second_array,但不能在operatii函数中使用它。
我该如何解决这个问题?

最佳答案

在 PHP 中有两种引用全局变量的方法:

  1. 在每个使用该变量的函数的开头使用 global 关键字。
  2. 使用$GLOBALS 数组。

其中,我建议坚持使用第二个,因为它始终清楚地表明变量是全局变量。

全局变量的一个问题是跟踪它们的使用位置;使用 $GLOBALS 数组在一定程度上缓解了这个问题。

但是,使用全局变量仍然存在问题;在代码中使用太多全局变量通常被认为是不好的做法。在处理过大量广泛使用全局变量的遗留系统后,我可以保证它们会给 future 的开发人员带来很多麻烦。

使用全局变量也会让您更难为您的代码编写正式的测试套件(即单元测试)。

因此,我的建议是尽可能避免使用全局变量。它们在某些情况下是必需的,但您越能避免它们,而是将变量传递到您的函数和类中而不是将它们设为全局变量,情况就会越好。

总结一下:

如果您必须使用全局变量,请使用 $GLOBALS['varname'] 引用它们,但通常最好根本不使用它们。

希望对您有所帮助。

关于php - 声明一个全局数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12876222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com