PHP在类方法中使用全局变量


PHP cent use global variable in class method

我正试图使$var1在许多不同的方法上工作

var1是来自包含url部分的数组的extract()的结果

exp:

$url="localhost/site/className/edit/254/…";

$arr[var1]="编辑";

$arr[var2]='254';

$var1 = 'something';
class myClass{
    function doSomething(){
        echo $var1;
    }
}
$obj = new myClass();
$obj->doSomething();

输出:

注意:未定义的变量:….中的var1

有什么办法解决它吗??

两种修复方法:

首先,将最佳传递变量作为函数参数:

$var1 = 'something';
class myClass{
    function doSomething($var){
        echo $var;
    }
}
$obj = new myClass(); //You could also pass it to constructor
$obj->doSomething($var1);

第二,工作,但被认为是一种不良做法:

$var1 = 'something';
class myClass{
    function doSomething(){
        global $var1 ;
        echo $var1;
    }
}
$obj = new myClass();
$obj->doSomething();