标签:
第四天 常见关键字和魔术方法
========================================================================
	1. final 关键字
	    修饰类 和 方法
		    被修饰的类不能被继承
		    被修饰的方法 不能被重写
	作用
		    ① 真理性
		    ② 安全性
		
	2. static 静态
		    回顾 静态变量
		    修饰成员属性和方法		3p依然有效
		格式:
		    public static $param;
		
		    public static function funName()
		    {
			
		    }
		
		访问静态属性
			在类的外部
					    类名::$属性名		//不需要实例化。直接用类名访问
			在类的内部
					    类名::$属性名\self::$属性名
		访问静态方法
			  在类的外部
				      $obj->funName()\类名::funName()
			  在类的内部
				      $this->funName()\类名::funName()\self::funName()
		特点注意:
			    ① 静态方法中不能出现非静态属性调用 $this
			    ② 在老版本PHP 中如果一个方法中 没有出现非静态调用则默认为静态方法(了解)
			
	3. 单态 (单例)设计模式
		    一个类只能被实例化一次
		
	4. const 常量
		    const 定义常量
		    在类的外部访问
			    className::常量名
		在类的内部访问
			    self::常量名 \ className::常量名
		作用:
			    给方法或函数定义参数
			便于记忆
		
	5. instanceof	
		    $obj instanceof 类名
		      判断对象是否时类或其子类的实例化
		
	6. 克隆对象	
		__clone(){}
		    当对象被clone 关键字克隆出另一个对象时调用
		      如果有属性为对象,则需要在__clone(){}中再次克隆属性,以完成完整的克隆操作
		
	7. __toString()	
		    当用echo print 对象当作字符串string来输出打印时自动调用
		作用:
			    类的说明信息输出
			
	8. __call() 和 __callStatic()
		    当访问方法或静态方法不存在时自动调用
		      第一个参数:调用方法名
		    第二个参数:传入方法的参数集合数组
		作用:
			404
			
	9. __invoke()		(没啥用)
		    在对象当作方法或函数调用时触发
		
	10. 自动加载类的函数
		    如果脚本中实例化对象时 类文件不存在 则自动触发__autoload函数
		    将类名传入方法
		    先判断指定位置是否存在类文件 如果存在 require 不存在 die
		
	11. 对象串行化(序列化)
		    $str = seralizie($obj)
		      自动触发 
			         __sleep()
			            {
				          return array(‘name‘,‘age‘。。。) //返回想保存的属性值数组
			          }
		
		    用文件或数据库或缓存存储obj 字符串
		
		    $objStr = unserialize($str);
			  __wakeup(){}
			
	12. 类型约束 
		    array 和 class
		
	13. stdClass
		    系统空类
	
标签:
原文地址:http://www.cnblogs.com/GBWSHUSHU/p/5502556.html