我正在学习PHP OOP
,但现在我遇到了一个错误并且对链式方法感到困惑。这是我的代码
<?php
class Car {
public $tank;
public function fill($float) {
$this-> tank += $float;
return $this;
}
public function ride($float) {
$miles = $float;
$gallons = $miles/50;
$this-> tank -= ($gallons);
return $this;
}
}
$bmw = new Car();
$tank = $bmw -> fill(10) -> ride(40);// -> tank;
echo "The number of gallons left in the tank: " . $tank . " gal.";
?>
现在问题是当用于调用函数而不调用Public变量tank
时,它显示以下错误消息。
可捕获的致命错误:类Car的对象无法转换为 第33行的C:\ xampp \ htdocs \ oop \ chain.php中的字符串
在这种情况下,为什么在调用这两个函数时我应该调用公共变量tank
?如果我没有直接将任何值赋给公共变量tank
那么为什么我应该调用该变量.. ??
我对此非常困惑
答案 0 :(得分:1)
替换
行$tank = $bmw -> fill(10) -> ride(40);// -> tank;
与
$bmw->fill(10);
$bmw->ride(40);
$tank = $bmw->tank;
它将按预期工作。