PHP从类函数中访问外部$ var

gus*_*gus 0 php global-variables

在PHP中,如何在类中的函数中使用外部$ var?例如,假设$ some_external_var设置为true,你有类似的东西

class myclass {
bla ....
bla ....

function myfunction()  {

  if (isset($some_external_var)) do something ...

   } 

}


$some_external_var =true;

$obj = new myclass();
$obj->myfunction();

谢谢

Pas*_*TIN 5

您需要global在函数中使用关键字,以使外部变量对该函数可见.

例如 :

$my_var_2 = 'glop';

function test_2()
{
    global $my_var_2;
    var_dump($my_var_2);  // string 'glop' (length=4)
}

test_2();
Run Code Online (Sandbox Code Playgroud)

您也可以使用$GLOBALS数组,即使在函数内部也是如此.


但是使用全局变量通常不被认为是一种好习惯:你的类不应该依赖某些可能存在或可能不存在的外部东西!

更好的方法是将您需要的变量作为参数传递给方法本身,或者传递给类的构造函数......