美文网首页
php的常用魔术方法

php的常用魔术方法

作者: EdisonDong | 来源:发表于2017-03-15 14:11 被阅读0次

只能说常用,因为魔术方法太多了,但是我们经常打交道的有限。

__construct():
类的构造方法,实例化类时调用:
class Bar{
    function __construct($name){
        $this->name = $name;
        echo "call construct";
    }
}
new Bar();//call construct;
__destruct()
类的析构方法,销毁对象时调用:
class Bar{
    function __destruct(){
        echo "destruct";
    }
}
$bar = new Bar();
$bar = null;//destruct
unset($bar);//destruct
__get()
__set()
__get()和__set()是一对,起到的作用仿佛是为每个成员变量都隐含的设置了get和set方法,
所以,在外部设置局部变量也成为可能,就像是访问public权限的变量一样。
class Bar{
    private $name;
    function __get($key){
        return $this->$key;
    }
    function __set($key,$value){
        $this->key = $value;
    }
}
$bar = new Bar();
$bar->name = 'foo';
echo $bar->name;//foo
__clone()
使用clone自动调用__clone()方法:
class Bar{
    function __clone(){
        echo "clone object";
    }
}
$bar = new Bar();
$foo = clone $bar;//clone object

关于__clone官方有更好的说明

__sleep()
序列化对象时调用
__wakeup()
反序列化对象时调用

与一般的对象(如数组),类对象(自定义的class)的实例化和反实例化,尤其是单例(singleton)的序列化比较复杂,我们将用另一篇文章来说明。

__toString()
打印一个对象时调用:
class Bar{
    private $item = array(1,2,3);
    function toString(){
        echo implode($this->item,',');
    }
}
__invoke()
以函数的方式调用一个方法时自动调用__invoke():
class Bar{
    function __invoke($str)
    {
        // TODO: Implement __invoke() method.
        echo $str;
    }
}

$bar = new Bar;
$bar('foo');//foo

相关文章

  • PHP常用魔术方法

    参考链接:PHP之十六个魔术方法详解

  • php的常用魔术方法

    只能说常用,因为魔术方法太多了,但是我们经常打交道的有限。 关于__clone,官方有更好的说明 与一般的对象(如...

  • PHP面试梳理

    PHP php 魔术方法 、魔术常量 php cli autoload , spl_autoload compos...

  • PHP魔术方法

    PHP魔术方法

  • PHP常用的魔术方法讲解

    PHP常见的魔术方法 __get 获得一个类的成员变量时调用 __set 设置一个类的成员变量时调用 __to...

  • PHP魔术方法

    魔术方法(Magic methods) PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了...

  • 规则引擎升级版(直接能跑)

    利用了php的魔术方法

  • php magic method

    常用的php魔术方法,分类汇总Mark在此 1.字符串 截取子字符串substr(str,start,stop) ...

  • 链家-开发商端-面试题

    php php常用的数组及用法 php魔术函数 php私有成员变量 列举常用的打印函数及区别 实现一个单例模式 调...

  • PHP 的魔术方法及其应用

    PHP中将所有__(两个下划线)开头的类方法作为魔术方法,这方法之所以称为魔术方法是因为其实现的功能就如变魔术一样...

网友评论

      本文标题:php的常用魔术方法

      本文链接:https://www.haomeiwen.com/subject/seplnttx.html