我正在尝试设置一个属性并使其在多个类中可用。我设置了属性并从设置它的方法回显它,它给出了设置的值,但是当我使用另一个方法的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();
您将"BLAH"设置为$process->失败,并尝试回显$test->失败。
$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();
您没有附加输出,但我假设它看起来像这样: BLAHNULL
$failed
变量是一个实例变量。您制作的每个"过程"都不同。
当您调用 showFailed 时,它会创建一个地理编码,进而创建一个新的进程。然后,该过程在设置后回显其BLAH
状态。退出该地理代码地址后,将打印原始外部进程的失败状态,该状态为 null。