PHP属性的访问控制有哪些规则

   2024-09-30 4050
核心提示:PHP 属性(也称为成员变量)的访问控制主要遵循以下规则:公共属性(Public):公共属性可以在任何地方被访问,包括类的内部、子

PHP 属性(也称为成员变量)的访问控制主要遵循以下规则:

公共属性(Public):

公共属性可以在任何地方被访问,包括类的内部、子类和类的外部(通过对象实例)。公共属性的值对所有实例共享。

受保护属性(Protected):

受保护属性只能在类的内部以及继承该类的子类中被访问。受保护属性的值仅对类及其子类可见,不会对外部暴露。

私有属性(Private):

私有属性仅在类的内部可见,即使是继承该类的子类也无法访问。私有属性的值对所有外部实体都是隐藏的,只能通过公共或受保护的 getter 和 setter 方法进行访问和修改。

默认访问控制(None):

如果不显式指定访问控制修饰符(public, protected, 或 private),则属性默认为“受保护”(protected)。这意味着属性可以在类的内部被访问,但不能在类的外部通过对象实例直接访问。

构造函数中的属性初始化:

构造函数允许在创建对象时初始化属性。可以在构造函数中使用公共、受保护或私有属性,具体取决于设计需求。

属性访问器(Getter)和修改器(Setter):

可以为属性定义访问器(getter)方法来读取属性值。可以定义修改器(setter)方法来设置属性值。访问器和修改器方法可以是公共、受保护或私有的,以控制属性的访问级别。

属性类型声明:

PHP 允许在类定义时为属性指定类型声明(如 int, string, bool 等)。类型声明会强制要求赋给属性的值符合指定的类型,否则会引发错误。

属性默认值:

可以在类定义时为属性指定默认值。如果未显式设置属性值,则将使用默认值。

属性不可变性:

可以通过将属性声明为私有来使属性不可变,这样就无法在类的外部修改其值。对于公共属性,可以通过定义 getter 方法来控制其值的读取,并在 getter 方法内部决定是否允许修改。

属性继承:

在 PHP 中,属性不是被子类继承的,但子类可以通过 super 关键字访问父类的受保护属性。

请注意,PHP 中的访问控制规则主要适用于公共、受保护和私有属性。默认访问控制(none)实际上等同于受保护属性,但在实际编程中并不常用。此外,PHP 7 引入了标量表达式类型声明,允许在类定义时为属性指定标量类型(如 int, float, string, bool, array, callable, iterable, object)。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号