美文网首页PHP开发
PHP常用的魔术方法讲解

PHP常用的魔术方法讲解

作者: hankviv | 来源:发表于2018-04-26 21:04 被阅读0次

PHP常见的魔术方法

  • __get 获得一个类的成员变量时调用
  • __set 设置一个类的成员变量时调用
  • __toString 类被当成字符串时的回应方法
  • __construct 类的构造函数
  • __call 在对象中调用一个不可访问方法时调用
  • __callStatic 用静态方式中调用一个不可访问方法时调用
  • __invoke 调用函数的方式调用一个对象时的回应方法

__construct:

class Object{
    function __construct()
    {
        echo 'hello world';
    }
}
    
new \IMooc\Object();
\IMooc\Object::say();

当实例化的时候会运行__construct,注意静态调用不会。

__get,__set:

  function __set($name, $value)
    {
        $this->$name = $value;
    }

    function __get($name)
    {
       return $this->$name;
    }
$obj = new \IMooc\Object();
$obj->title = 1;
var_dump($obj->title);

当获取和设置一个成员变量的时候会调用set和get方法。set方法有两个参数,第一个是设置变量名字,第二个变量的值。

__call,__callStatic:

 function __call($func, $params)
    {
        var_dump($func,$params);
        return "magic function \n";
    }

    static function __callStatic($func, $params)
    {
        var_dump($func,$params);
        return "magic function \n";
    }
$obj = new \IMooc\Object();
//__call
$obj->noFunction();
//__callStatic
\IMooc\Object::noFunction();

当调用一个不存在或者无法调用(无权限,不可访问,受保护)的方法的时候,会调用__call方法,静态调用会使用__callStatic方法。第一个是函数名称,第二个是函数参数。

__toString:

    function __toString()
    {
        return __CLASS__;
    }
$obj = new \IMooc\Object();
echo $obj;

当类被当作字符串处理的时候就会调用该方法。

__invoke:

   function __invoke($params)
    {
        var_dump($params);
        return "invoke\n";
    }
$obj = new \IMooc\Object();
$obj('hello');

当一个类被当作函数来执行的时候,就会调用invoke方法。参数为传递给对象的参数。

相关文章

  • PHP常用的魔术方法讲解

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

  • PHP常用魔术方法

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

  • php的常用魔术方法

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

  • PHP面试梳理

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

  • PHP魔术方法

    PHP魔术方法

  • 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/donmlftx.html