zoukankan      html  css  js  c++  java
  • PHP魔法方法的使用

    1.__get / __set
    当类没有要存取的属性时,就调用这两个函数
    $obj = new IMoocObject();
    $obj->title = "hello";
    echo $obj->title;

    <?php
    namespace IMooc;
    class Object
    {
    protected $array = array();
    function __set($key, $value)
    {
    var_dump(__METHOD__);
    $this->array[$key] = $value;
    }
    function __get($key)
    {
    var_dump(__METHOD__);
    return $this->array[$key];
    }
    }

    2.__call / __callStatic
    当类没有所调用的函数时,就调用这两个函数
    $obj = new IMoocObject();
    echo $obj->test("hello", 123);
    echo IMoocObject::test("world", 1233);

    <?php
    namespace IMooc;
    class Object
    {
    function __call($func, $param)
    {
    var_dump($func, $param);
    return "magic function ";
    }
    static function __callStatic($func, $param)
    {
    var_dump($func, $param);
    return "magic static function ";
    }
    }

    3.__toString
    当对象当做字符串使用时自动调用该函数
    $obj = new IMoocObject();
    echo $obj;

    <?php
    namespace IMooc;

    class Object
    {
    function __toString()
    {
    return "toString";
    }
    }

    4.__invoke
    对象当做函数使用时自动调用该函数
    $obj = new IMoocObject();
    echo $obj("test1");

    <?php
    namespace IMooc;

    class Object
    {
    function __invoke($param)
    {
    var_dump($param);
    return "invoke";
    }
    }




  • 相关阅读:
    向 DataGridView 的行集合中添加行
    添加form窗口最大化最小化事件
    转义字符表
    键盘输入变简单了
    数字9X9的表格
    统计你输入的任意字符
    一个九九表
    用冒泡法排序
    学生会
    任意排序几个数
  • 原文地址:https://www.cnblogs.com/phonecom/p/e13a1ade55bc0b242be1d6b855edc707.html
Copyright © 2011-2022 走看看