0

ここに私が理解していないことの簡単な例があります:

<?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 = 新しいクラスA(); ?>

結果は次のとおりです。

ChangeZ : z=1  
ChangeZ : z=666  
showZ : z=1  

showZ=666 だと思っていました。z=1 の理由
ここで明らかに何かが欠けています。
前もって感謝します

4

2 に答える 2