Set属性在一个方法中给出值,但在另一个方法中它表示NULL

时间:2014-12-10 19:56:01

标签: php

我正在尝试设置一个属性并让它在多个类中可用。我设置属性并从它设置的方法中回显它并给出设置值,但是当我从另一个方法使用var_dump时它会说它为空。任何人都可以指出我做错了什么?输出为BLAHNULL提前致谢

Class Process {

    public $failed;

    public function setFailed($failed) {
        $this->failed = $failed;
        echo $this->failed;
    }


    public function showFailed() {
        $geocode = new Geocode;
        $geocode->geoCodeAddress();
        var_dump($this->failed);
    }
}

Class Geocode {
    public function geoCodeAddress() {
        $process = new Process;
        $process->setFailed('BLAH');
    }
}

$test = new Process;
$test->showFailed();

1 个答案:

答案 0 :(得分:1)

你没有附上你的输出,但是我假设它看起来像这样:BLAHNULL

$failed变量是一个实例变量。对于每个"过程"它是不同的。你做的。

当您调用showFailed时,它会生成一个地理编码,而地理编码又会生成一个新进程。然后,该过程在设置后回显其BLAH状态。退出geoCodeAddress后,将打印原始外部Process的失败状态,该状态为null。