实际上,由于我们希望网站的其他部分也能调用 changePassword() 函数(例如从设置页面或登录脚本调用),因此我们应该将该函数本身声明为 public。🔑
如果我们将该函数声明为 protected,则只有类本身及其“子类”(例如 AdminUser)才能使用它,这将导致普通的网页表单无法触发密码更改!
以下是实际示例:
class User {
private $password; // Locked away from everyone 🔒
// Accessible from anywhere in your website 🌍
public function changePassword($newPassword) {
if (strlen($newPassword) < 8) {
return "Error: Password is too short!";
}
$this->password = $newPassword;
return "Password updated successfully.";
}
}
通过将属性设为私有,方法设为公共,我们成功地“封装”了数据。我们创建了一个受控的入口,只有遵循规则才能更改数据。
接下来是下一个支柱:多态性🎭
“多态性”这个词听起来像个深奥的科学术语,但它的意思其实很简单,就是“多种形态”。在 PHP 中,它允许不同的类拥有同名但功能不同的方法。
假设我们有一个 Animal 父类,其中包含一个 makeSound() 方法。
Dog 子类会生成自己的版本:echo “Bark!”;
Cat 子类会生成自己的版本:echo “Meow!”;
这非常有用,因为你可以创建一个包含各种动物的列表,然后让它们都调用 makeSound() 方法,而无需知道每种动物的具体种类。
如果你正在编写一个包含 calculateArea() 方法的“形状”程序,那么 Square 类和 Circle 类中该方法的计算方式会有什么不同呢?
WP开发教程 WordPress导师在线教程