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文件中运行的全部代码。