PHP新手开发教程-OOP基础全掌握

没错!因为 WeddingCake 继承自 Cake,所以它拥有父类的所有资源。你无需重写 describe() 的逻辑;它能直接运行。这就是继承的核心:重用代码以节省时间并减少错误。

现在,让我们来看下一个支柱:封装🔒。

封装:厨房规则

用蛋糕来打比方,想象一下,如果有人在蛋糕烘烤时走进厨房,把“巧克力”口味改成“肥皂”口味,那会是什么情况?简直是灾难!🧼

在编程中,我们使用访问修饰符来保护数据。你可以把它们想象成类属性上的“禁止入内”标志:

ModifierAccess LevelAnalogy
publicAnywhere (inside or outside the class)An open buffet 🍴
protectedOnly inside the class and its “children”A family secret recipe ㊙️
privateOnly inside the specific class itselfYour personal diary 📔

为了确保安全,我们通常会将属性设为私有或受保护的,并提供 Getter 和 Setter 方法来与它们交互。这样我们就可以添加“验证”(规则)。

class Cake {
    private $flavor; // No one can change this directly now!

    public function setFlavor($newFlavor) {
        // We can add a rule here
        if ($newFlavor === "Soap") {
            return "Error: That is not a cake flavor!";
        }
        $this->flavor = $newFlavor;
    }

    public function getFlavor() {
        return $this->flavor;
    }
}

逻辑挑战

假设你有一个 User 类,它有一个私有属性 $password。

如果我们想允许用户更改密码,但又想确保密码长度至少为 8 个字符,那么在 changePassword() 函数中,我们应该使用哪个修饰符才能让网站的其他部分也能使用它?

×
PHP新手开发教程-OOP基础全掌握

PHP新手开发教程-OOP基础全掌握

PHP 中的面向对象编程 (OOP) 是...

查看更多

Modulo马杜罗操作符讲解和余数的周期性

To understand w …