在
public function bind($query, $input_param, $btypes)
{
// $input_param = $this->ref_arr($input_param); // this self assignment gives an error!
$input_ref = $this->ref_arr($input_param); // this works
}
我通过反复试验了解到这一点......但我想弄明白为什么?
我没有机会形成更多测试用例,但如果我在函数的输入中使用$input_param
,则无法将结果返回给$input_param
。一旦我将名称更改为其他内容,在这种情况下$input_ref
就可以了。
答案 0 :(得分:2)
$this
关键字引用您当前的对象。
因此,如果您使用的代码类似于以下类:
class foo {
public function __construct() {
$this->bar = 'that'; // works because $this references the foo object
}
}
应该有效。但是,如果您在对象之外,则$this
将无效,因为$this
没有对象可供参考。
class foo {
public function __construct() {
}
}
$this->bar = 'that'; // will not work because you are not inside of any object
答案 1 :(得分:0)
我没有时间重现这个...只需更改变量名即可解决问题。