1.抽象类
抽象类的功能是使相似的类之间实现数据共享,使用关键字abstract定义.
抽象类只能被继承,不能被实例化。一个类只能继承一个抽象类.抽象类里面可以不写抽象方法,但没有抽象方法则抽象类没有任何意义.抽象类里面可以有成员变量,成员方法。抽象方法使用关键字abstract定义。修饰方法的关键词至少要是protected或者是public,不能是private
当一个子类继承抽象类的时候,必须要重写抽象类的抽象方法
当子类继承抽象类的时候,子类重写的抽象方法的级别至少要跟抽象类同级或者是更低等级
2.接口
功能:使无关的类之间实现数据共享
接口使用interface关键字定义,不能被实例化和继承,只能使用implements关键字引用
一个类可以引用多个接口,接口与接口之间使用逗号隔开
接口里面只能存在常量和抽象方法,不能有其他的成员变量和成员方法
接口里面定义抽象方法的关键字是public,不需要使用abstract
使用接口可以实现类的多态性
类与类之间能够相互继承
3.魔术方法
a.__call(参数1,参数2):当用户调用了一个不存在的方法会系统自动执行这个方法,参数1是调用方法名,参数2是调用方法时小括号里面的数值组成的数组
b.__set(参数1,参数2):当用户给一个不存在的成员变量或者是protected和private变量赋值的时候,系统会自动执行该方法
c.__get(参数1):当用户调用一个不能存在的成员变量或者是protected和private变量时,系统会自动执行该方法
d.__toString:当用户直接echo对象的时候,系统会自动调用该方法
e.__sleep:当用户序列化对象的时候,系统自动调用该方法 ,返回值是return一个数组,不然无意义,序列化对象的关键字serialize
serialize(对象名):将对象序列化
f.__wakeup:当用户反序列化对象的时候,系统自动调用该方法.反序列化关键字unserialize
unserialize(对象序列化组成的字符串):以数组的形式还原对象
g.__autoload:当用户调用一个不存在的类时,系统自动执行的方法。
当前页面存在spl_autoload_register()时,该方法时效
注册自动加载函数:spl_autoload_register有三种参数,第一种是一个函数名
第二种是['类名','静态方法名']
第三种是("命名空间名\当前类名::静态方法名")
4.PHP内置的相关函数
a.get_object_vars(对象名):以一维数组的形式得到对象里面存在的所有public成员变量
b.get_class(对象):得到对象中的类名
c.get_called_class(对象):得到动态的对象类名
b.method_exists(对象名,成员方法名):判断成员方法在对象里面是否存在
e.property_exists(对象名,成员变量名):判断成员变量在对象里面是否存在
f.get_declared_classes():得到当前页面存在的所有类名
浙公网安备 33010602011771号