PHP中的访问修饰符

在 PHP 中,类的修饰符主要分为访问控制修饰符和类特性修饰符。以下是对这些修饰符的介绍,并结合示意图帮助理解。

1. 访问控制修饰符

访问控制修饰符用于控制类的属性和方法的访问权限,PHP 提供了三种访问控制修饰符:publicprotectedprivate

1.1 public(公有)

  • 描述:可以在类的内部和外部访问。
  • 示意图
类内部:✔️
子类:✔️
类外部:✔️

1.2 protected(受保护)

  • 描述:只能在类的内部和子类中访问,外部无法直接访问。
  • 示意图
类内部:✔️
子类:✔️
类外部:❌

1.3 private(私有)

  • 描述:只能在类的内部访问,子类和外部都无法访问。
  • 示意图
类内部:✔️
子类:❌
类外部:❌

2. 类特性修饰符

除了访问控制修饰符,PHP 还提供了其他修饰符来定义类的特性。

2.1 static(静态)

  • 描述:用于定义静态属性或方法。静态成员属于类本身,而不是类的实例,可以通过类名直接访问。
  • 示意图
类内部:✔️
子类:✔️
类外部:✔️(通过类名访问)

2.2 final(最终)

  • 描述:用于定义不可被继承的类或不可被重写的类方法。
  • 示意图
类内部:✔️
子类:❌(final 类不能被继承,final 方法不能被重写)
类外部:✔️

示例代码

以下是一个简单的 PHP 类示例,展示不同修饰符的使用:

<?php
class MyClass
{
public $publicProperty = "Public Property";
protected $protectedProperty = "Protected Property";
private $privateProperty = "Private Property";
public function publicMethod()
{
echo "This is a public method.";
}
protected function protectedMethod()
{
echo "This is a protected method.";
}
private function privateMethod()
{
echo "This is a private method.";
}
}
class ChildClass extends MyClass
{
public function accessProtected()
{
echo $this->protectedProperty; // ✔️
$this->protectedMethod(); // ✔️
}
}
$myClass = new MyClass();
echo $myClass->publicProperty; // ✔️
$myClass->publicMethod(); // ✔️
// 以下代码会报错
// echo $myClass->protectedProperty; // ❌
// echo $myClass->privateProperty; // ❌
// $myClass->protectedMethod(); // ❌
// $myClass->privateMethod(); // ❌
?>

总结

通过访问控制修饰符,可以实现类的封装,保护类的内部数据和逻辑。而 staticfinal 等修饰符则提供了类的其他特性,例如静态访问和防止继承等。

posted @   Laravel自学开发  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2024-03-06 Flex布局
点击右上角即可分享
微信分享提示