Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Set属性在一个方法中给出值,但在另一个方法中表示NULL_Php - Fatal编程技术网

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

Php Set属性在一个方法中给出值,但在另一个方法中表示NULL,php,Php,我试图设置一个属性,并使其在多个类中可用。我设置了属性并从它所设置的方法中回显它,它给出了设置值,但是当我从另一个方法中使用var\u dump时,它会说它为null。有人能指出我做错了什么吗?输出为BLAHNULL提前感谢 Class Process { public $failed; public function setFailed($failed) { $this->failed = $failed; echo $this->

我试图设置一个属性,并使其在多个类中可用。我设置了属性并从它所设置的方法中回显它,它给出了设置值,但是当我从另一个方法中使用
var\u dump
时,它会说它为null。有人能指出我做错了什么吗?输出为
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();

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

$failed
变量是一个实例变量。你所做的每一个“过程”都是不同的

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

您正在将“BLAH”设置为$Process->failed,并尝试回显$test->failed

$process与$test不是同一个实例。 无论您对$process做什么,$test都无法访问它

我不确定您想要实现什么,但我认为您想要的是类扩展:

Class Process extends Geocode{
    public function showFailed() {
        $this->setFailed('BLAH');
    }
}

Class Geocode{
    public $failed;

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

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

您使用的是什么方法?您看到的是我试图在单个php文件中运行的全部代码。