php链接方法错误和混乱

时间:2018-02-26 10:57:03

标签: php oop

我正在学习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那么为什么我应该调用该变量.. ??

我对此非常困惑

1 个答案:

答案 0 :(得分:1)

替换

$tank = $bmw -> fill(10) -> ride(40);// -> tank;

$bmw->fill(10);    
$bmw->ride(40);    
$tank = $bmw->tank; 

它将按预期工作。