- public/private/protected 访问修饰符,针对对象中的方法和属性。
<?php class MyClass { private $id = 18; public function getId() { return $this->id; } } $obj = new MyClass(); echo $obj->getId();
//输出 18
- 统一的构造函数名称 __construct()。 为避免构造函数的名字和类的名字相同,现在用__construct()来声明,从而让你更加容易在类的分层中转移类
- 通过__destruct()定义对象的析构方法 。允许定义一个析构函数来注销一个对象。
- 接口。
一个使用接口的类可以加载不止一个相关的接口,一个类只能继承来自另外一个类,但是可以实现任意多个接口。
使用接口,可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容,接口是通过interface关键字来定义的,就像一个标准的类一样,但其中定义所有的方法都是空的。接口中定义的所有方法都必须是公有的,这是接口的特性。需要注意的是,在接口中定义一个构造函数是被允许的,在有些场景析这可能会很有用,例如工厂模式。
实现(implements) 要实现一个接口,使用implements操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称
note:接口也可以继承,通过extends操作符
note:类要实现接口,必须使用和接口中定义的方法完全一直的方式,否则会导致致命错误
常量 const 接口中也可以定义常量,接口常量和类常量的使用完全相同,但是不能被子类或子接口所覆盖。
<?php interface Display{ const VALUE_A = 'Dispaly A';//类常量 function display(); } interface ShowIng{ function show(); } interface Runner extends ShowIng { //接口继承 function runner(); } class Circle implements Runner,Display { //类实现多个接口 function display() { return "display"; } function show() { } function runner() { } } echo Circle::VALUE_A;
//输出 Dispaly A
instanceof 操作符。
在语言这个级别对你检查“是一”关系时做支持
final标记方法。
final关键字允许你用来标识方法,使其不能被子类重载
final标记类。
声明一个类为final类型后,它将不能被继承。