我需要将大量变量从数据库传递给PHP类,并且无法找出正确的语法。
这是类的变量格式:
$this->SetX('X','Y',15);
我试过这些但没有工作:
$var = 'SetX';
$this->{$var} = array('foo','bar',15);
$this->{$var}('foo','bar',15);
$this->{$var} = "'foo','bar',15";
但没有工作,可以这样做吗?
好的,现在明白这是一个方法,但是方法名称和它的关联变量是动态的并存储在DB中,因此我需要动态生成这些。
答案 0 :(得分:1)
这是一种方法,而不是一种属性。但是如果省略大括号,第二个版本就可以了:
$var = "SetX";
$this->$var("foo", "bar", 15);
答案 1 :(得分:0)
$这 - > SETX( 'X', 'Y',15);是一种方法,而不是一种变量。您正在调用对象的方法,而不是设置对象的变量。
从数据库循环结果并继续调用$ this-> SetX('X','Y',15);并使用数据库中的值替换X,Y和15。
答案 2 :(得分:-1)
如果您想根据变量名称调用函数,则必须使用call_user_func
或call_user_func_array
,如下所示:call_user_func_array(array($this, $var), array('X', 'Y', 15));