上课:
class A{
public $test = '';
public function B($param){
$this->test = 'hello';
echo $param;
}
public function C(){
return "C() contains:" . $this->test;
}
}
如果我这样称呼它,将C的输出传递给B:
$obj = new A;
$obj->B($obj->C());
我得到了这个输出:
C() contains:
我希望在下面打印,因为B
已将$test
设置为hello:
C() contains:hello
为什么在$test
中设置对象的公共B()
变量不会更改子函数调用C()
得到的值?他们不是都访问相同的$obj->test
变量吗?
答案 0 :(得分:1)
如果您首先调用返回C
的{{1}}类A
方法,现在将其作为方法C() contains:
中的$param
传递,现在为{{1} }}有值B
,但您只是回显$test
hello
,因此它只打印$param
以打印您需要的C() contains:
< / p>