码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象第四天

时间:2016-05-17 19:17:11      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

第四天 常见关键字和魔术方法
========================================================================
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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!