PHP 访问控制
-
公共成员(public)
通过将成员指定为私有的,可以将其可访问性限制为声明它的类。私有成员不能从继承声明它的类的类引用,也不能从类外部访问。通过使用成员的private
关键字指定,可以使类成员变为私有的。 -
私有成员(private)
除非您另行指定,否则类的属性和方法是公共的,可以显式的用关键字public
指定。也就是说,可以在三种可能的情况下访问它们- 从声明它的类之外
- 从声明它的类中
- 从另一个实现声明它的类的类中
当MyClass类由另一个使用extends
继承的类时,myPublicFunction()将是可见的,$driver也是可见的。子类不会对myPrivateFunction和$car有任何意识或访问权限,因为它们被声明为私有的。 -
受保护成员(protected)
受保护的属性或方法可以在声明它的类中以及扩展该类的类中访问。受保护的成员在这两类之外是不可用的。可以通过在成员使用protected
关键字来保护类成员。 -
接口(interface)
定义接口以向实现者提供通用函数名称。不同的实现者可以根据需要实现这些接口(换句话说接口只是声明,没有实现,是一种特殊的类,可以用interface
来声明接口)。可以说,接口是开发人员实现的骨架。然后,如果另一个类实现了该接口(用implements
来实现),就像这样 -
类常量(interface)
常量有点像变量,因为它保存一个值,但实际上更像是一个函数,因为常量是不可变的。一旦声明了常量,它就不会改变。声明一个常量很容易,访问类常量可以用类名加两个冒号来访问,就像在这个版本的MyClass中一样在这个类中,requiredMargin是一个常量。它使用关键字const
声明,并且在任何情况下都不能将其更改为1.7以外的任何值。请注意,常量的名称没有前导$,因为变量名称可以。 -
抽象类(abstract)
抽象类是无法实例化的,只能继承的类。您使用关键字abstract
声明一个抽象类,如下所示,从抽象类继承时,父类声明中标记为abstract的所有方法都必须由子类定义实现; 此外,必须使用相同的可见性定义这些方法。请注意,抽象类中的函数定义也必须以关键字abstract
开头。在非抽象类中包含抽象函数定义是不合法的。 -
-