PHP多个封装函数全局变量范围

Gre*_*reg 5 php function global-variables

这是我遇到的问题的解决方案,无法在任何地方找到答案.它涉及全局变量范围和多个功能.

基本上,我想要一个函数声明变量,然后让第二个嵌套函数使用这些变量.当脚本声明变量然后在声明后调用使用这些变量的函数时,这种方法很有效global $var1, $var2;.

但是,我遇到了嵌套函数看到父函数声明的变量的问题,使用与调用函数的脚本相同的代码逻辑.

解决方案是写:

function function_1(){
  global $var1, $var2;
  $var1=0;
  $var2=0;
  function function_2(){
     global $var1, $var2;
  }
  function_2();//call to nested function.
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,所有变量都能正确交

如果在function_1中声明变量后声明'global',则只需清除变量的值(声明没有值的新变量?).

希望这有助于某人:)

格雷格

And*_*kov 0

您应该使用闭包: function function_2 use ($var1, $var2)() { }