zoukankan      html  css  js  c++  java
  • 面向对象中的常用魔术方法

    __autoload($classname);这个魔术方法与其他魔术方法不同的是,它不是在类中使用的,其他都是在类内部使用,只要在页面中用到一个类,就会自动将这个类名传给这个函数的参数。在开发中用它来自动加载类。

    __sleep():是在对象序列化也叫串行化时,自动调用的方法,因为对象序列化的时候serialize($object),如果类里不加这个魔术方法,会自动将类中的所有属性全部序列化,如果只想让某些属性被序列化,就要用到这个方法,这个方法返回一个由类的属性组成的数组。序列哪个属性就将那个属性放到数组中。作用:将对象部分序列化。

    function __sleep(){return array('name','age');}序列化名字和年龄两个属性,序列化哪个属性就在__sleep方法里返回一个包含该属性的数组。

    $str  = serialize($object)//将对象序列化成二进制的字符串。

    $newobject = unserialize($str);//将二进制的字符串转成一个新的对象,这个新对象拥有原来那个对象的属性和方法。

    __wakeup():在反序列化的时候,自动调用的方法,因为在对象反序列化的时候会诞生一个新的对象,而每诞生一个新的对象,一般都要将这个对象初始化(当然不是必须的,视情况而定),所以这个魔术方法的作用就是将新诞生的对象进行初始化。

    __clone():在克隆对象的时候自动调用的方法,这个方法中的$this指的是刚被克隆出来的对象,这个魔术方法也是用来给新克隆出的对象进行初始化的。$that指原来那个对象但不好使。

    __call($fnName,args):当对象在外部调用类中不存在的方法时自动调用,处理一些不存在方法的错误调用,这个方法接受两个参数,第一个参数为访问不存在的方法名,第二个参数为不存在的方法的参数数组。

    __toString():直接输出对象引用时自动调用,因为对象不能在类里直接使用,用来快速获取对象字符串表示的最快捷方式。

  • 相关阅读:
    穷人思维与富人思维
    纯真IP库读取文件
    memcached 分布式 一致性hash算法demo
    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
    IPhone在横屏字体变大解决办法-webkit-text-size-adjust
    js设计模式---阅读笔记002--接口
    js设计模式---阅读笔记001--富有表现力的js
    关于js继承
    js正则表达式中test,exec,match方法的区别说明
    js获取自定义的属性值
  • 原文地址:https://www.cnblogs.com/toward-the-sun/p/3919533.html
Copyright © 2011-2022 走看看