#关键字
extends:继承
private:私有属性
protected:受保护属性
public:公共属性
final: 修饰类和成员方法(不能修饰成员属性)被修饰的类不能被继承,被修饰的方法不能被子类重构覆盖
static:使用静态可以修饰成员的属性和成员方法,可以被同一个类所有对象共享(访问方式: 静态成员:类名::$成员 ,在内部访问其它成员:self::$成员 )
const:类名中声明常量属性使用const(他只能修饰成员属性)和define一样。访问方式跟静态方法一样减去$符,常量声明时候一定要给初始值;
instanceof:判断这个对象是否是后面这个类的实例,
abstract:抽象类与抽象方法(用于定义规范,
修饰类与方法)半成品,不能用
interface:接口
implements:类与接口之间实现
多态,不同对象做一件事得到不同结果
#方法
__get():没权限访问时候自动调用( 访问私有属性 )
__set(): 无权操作的属性赋值时, 或不存在的属性赋值时, __set()自动调用(方法用来设置私有属性)
__isset() : 用isset() 判断对象不可见的属性时(protected/private/不存在的属性) 会引发 __isset()来执行
__construct(): 构造方法
__destruct():析构方法
__clone(): 克隆方法,当对象被克隆时,将会自动调用
__unset(): 当 用unset 销毁对象的不可见属性时, 会引发 __unset();
__call():作用:在调用对象中不存在的方法时,就会出现系统报错,然后退出, 声明时候自动调用:就是在调用一个对象中不存在的方法时自动调用(处理一些不存在的方法的错误调用,需要两个参数,具体的看api)
__callStatic:调用一个不存在的静态方法的时候自动调用
__toString():时机:将一个对象当作字符串输出的时候自动调用(直接echo 对象)。必须return
__invoke() :时机:将一个对象当作函数调用的时候回自动调用
__sellp:将对象转换为字符串用于持久存储(使用serialize 将对象串行化的时候会自动调用,串行化一个对象将会保存对象的所有属性变量和类名信息,但是不会保存对象的方法)
__wakeup:使用unserialize 将字符串还原为对象的时候会自动调用
__autoload():实例化对象时,自动调用(其它的魔术方法都是在类中添加起作用,这是一个唯一一个不在类中添加方法的,只要在页面中使用掉一个类,只要用到这个类名,就会自动将类名传给这个参数)