所以我刚刚开始使用魔术方法,当我必须绑定变量以在我的函数中使用时遇到了这个问题。
这是我的问题的一个小例子
class test{
protected $arraytest = array();
function __construct(){
$this->test = "datafor2";
var_dump($this->arraytest);
}
function test(){
return $this->test;
}
function __set($name, $value){
$this->arraytest[$name] = $value;
}
}
$test = new test();
echo $test->test();
所以我试图将它绑定test
以供稍后在函数test()
中使用,但因为我将变量绑定到对象,所以它使用魔术方法并将其绑定到二传手。
这不是我要查找的变量$arraytest
,不应该将变量test
绑定。
这可以通过哪些方式解决?我知道如果变量是test
,我可以在stter中做一个例外,只是想知道在使用魔术设置器时有什么更好的做法。
答案 0 :(得分:1)
只需将变量声明为属性,就不会使用setter。
class test{
protected $arraytest = array();
protected $test;
function __construct(){
$this->test = "datafor2";
var_dump($this->arraytest);
}
function test(){
return $this->test;
}
function __set($name, $value){
$this->arraytest[$name] = $value;
}
}
$test = new test();
echo $test->test();