这是一个我不理解的简单示例:
<?php
class classA {
private $z = 1;
public function __construct() {
$this->b = new classB;
$this->b->setRefonClassA($this);
$this->b->start();
}
function changeZ() {
echo "ChangeZ : z=" . $this->z . "\n";
$this->z = 666;
echo "ChangeZ : z=" . $this->z . "\n";
}
function showZ() {
echo "showZ : z=" . $this->z . "\n";
}
}
class classB extends Thread {
function setRefOnClassA($classA) {
$this->classA = $classA;
}
function run() {
$this->classA->changeZ();
$this->classA->showZ();
}
}
$test = new classA(); ?>
结果是:
ChangeZ : z=1
ChangeZ : z=666
showZ : z=1
我期待showZ = 666。为什么 z=1 ?
我显然在这里遗漏了一些东西。
提前致谢