这样有一些的功能就不能自动执行。
此程序运行飞结果为:
5.常见的关键字和魔术方法 常见的关键字和魔术方法
Final 关键字
可以修饰类和成员方法,不能修饰成员属性和常量 使用 final 修饰的类,不能有扩展(继承) 使用 final 修饰的方法,不能被子类覆盖。
Static 关键字
可以修饰成员属性和成员方法 静态的成员在同一个类中的所有对象都是公用的 静态成员只要类一加载就将静态成员分配到内存的数据段里 使用 static 标识的成员是属于类的,所以要使用类名访问,不能使用对象去访问 在类内部使用 self 代表本类引用
静态方法不能访问非静态的成员 如果在方法中使用不到非静态成员,最好声明为静态方法。
Const 关键字
只能修饰成员属性, 使用 const 修饰的成员属性时属于类的,所有访问方式和静态成员是一样的,都是通过类名或在成员方法中使 用 self 关键字访问。即在类外部使用类名访问,在类内部使用 self 访问 类中声明常量时必须给初值。
单态
设计模式: 单态设计模式:
类只有一个对象 实例:
本
程序的执行结果为:
Clone 魔术方法
__toString()魔术方法 魔术方法
它是在直接输出对象引用是自动调用的方法 实例:
此程序的运行结果:
__call()魔术方法 魔术方法
调用对象中不存在的方法是就会自动调用该魔术方法。 __call()需要两个参数:第一个参数:调用不存在的方法是,接收这个不存在的方法的方法名。 第二个参数:将不存在飞方法中的参数传到第二个参数内。 实例:
此程序的执行结果:
__autoload()魔术方法 魔术方法
注意:其它的魔术方法都是在类中添加起作用。这是一个唯一一个不在类中添加的魔术方法。 格式:
对象串行化
串行
化:将一个对象转为二进制串 串行化使用的时机: 将对象长时间存储在数据库或文件中时 将对象在多个
PHP 文件中传输时 串行化函数和反串行化函数:
__sleep()和__wakeup()魔术方法 和 魔术方法
在串行化时自动调用的方法 __sleep()的作用:就是将一个对象部分串行化 只要这个方法中返回一个数组,数组中有几个成员属性就串行化几个成员属性,如果不加这个魔术方法, 则所有的成员属性都被串行化 __wakeup()的作用:反串行化后对象重新诞生,可以对成员属性进行更改。
对对象进行串行化: 对对象进行串行化:
serializ.class.php 文件: 文件:
Wirte.php 文件: 文件:
Obj.txt 文件:
对对象进行反串行化: 对对象进行反串行化:
Read.php 文件:
本程序的执行结果:
对对象进行部分串行化 对对象进行部分串行化: 部分
Serialize.class.php 文件:
Wirte.php 文件: 文件:
Obj.txt 文件:
没有性别信息
对对象进行部分反串行化 对对象进行部分反串行化: 部分反
Read.php 文件:
本程序的执行结果
没有性别信息
6.多态性 多态性