常用关键字
1.fanal
a.不能修饰成员属性,只有修饰类和方法
b.修饰类时不能被继承,修饰方法时不能被子类覆盖
2.static
a.用这个关键词修饰的成员属性,可以被同一个类的所有对象共享
b.数据存在数据内存的数据段中
c.修饰属性和方法,不能修饰类
d.静态的成员都要用类名去访问,不用创建对象,不用对象去访问;
如果在本类中使用静态成员,可以使用self来代表本类
类外访问静态成员——类名::成员
类内访问静态成员——self::成员
e.静态成员不能访问非静态的方法,因为静态方法不用使用对象来访问,也就没有对象,$this则不能代表对象,自然就访问不了非静态的成员
如果你确定一个方法不使用非静态方法,则可以将其声明为静态方法(不用创建对象,直接使用类名就可以访问)
3.const
只能修饰成云属性,用在类中设置常量
命名方式和前面的define一样
访问方式和static关键字一样
类外——类名::成员
类内——self::成员
魔术方法:
1.__call()
在调用一个对象不存在的方法时自动调用
2.__tostring()
直接输出对象引用时自动调用,用来快速获取对象的字符串表示的最便捷的方式
3.__clone
克隆对象使用,只要一个对象一诞生,就要有初始化动作,在这个方法里,$this关键字代表的是复本
4.__outoload
自动加载,只要在页面用到一个类,就会自动将类名传到这个参数
其他魔术方法都在类中起作用,这是唯一一个不在类中添加的方法
5.serialize
对象串行化,将一个对象转成二进制的串
将对象长时间储存在数据库或文件中时,或者将对象在多个PHP文件中传输时
6.unserialize
反串行化
7.__sleep
是在序列化时自动调用的方法
将一个对象部分串行化
只要这个方法返回一个数组,数组中有几个成员属性,就序列化几个成员属性,如果不加这个方法,则全部都串行化
8.__walkup
反序列化时调用的方法