PHP私有访问者

时间:2018-01-29 17:56:23

标签: php

我在我的类中使用set和get函数创建了一个私有变量,但我继续收到以下错误:

  

致命错误:未捕获错误:无法访问私有属性Car :: $ make   在C:\ xampp \ htdocs \ PhpOOP \ index.php:16堆栈跟踪:#0 {main}抛出   在第16行的C:\ xampp \ htdocs \ PhpOOP \ index.php

当我将其从private更改为public时,它可以正常工作。

这是我的班级:

<?php
class Car {
    private $make;
    public $model;
    public $color;

    public function starting(){
        echo "Car Starting";
    }

    public function setMake($make){
        $this->make = $make;
    }
    public function getMake(): string{
        return $this->make;
    }
}

这是我创建类的实例并尝试使用我的方法的地方。

<body>
    <?php
    include "classes/Car.php";
    $car1->setMake("Honda");
    echo $car1->getMake();
    ?>
</body>

2 个答案:

答案 0 :(得分:0)

您没有实例化您的类变量。您包含了您的类文件,但是您需要实例化该类

<body>
    <?php
    include "classes/Car.php";
    $car1 = new Car();
    $car1->setMake("Honda");
    echo $car1->getMake();
    ?>
</body>

答案 1 :(得分:0)

修复了我在php中逐步学习对象的问题。在公共时访问私有变量。然后我把它变成私人的,看看它是如何工作的。而我访问它的旧代码导致了问题,而不是使用set和get方法的新东西。