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";
    }
    }




  • 相关阅读:
    leetcode刷题37
    leetcode刷题36
    leetcode刷题38
    leetcode刷题35
    leetcode刷题34
    leetcode刷题33
    记一次Unity使用XNode插件时自动连线问题
    Unity中UGUI图片跟随文本自适应
    Unity中多个物体交换位置
    使用VSCode编译C
  • 原文地址:https://www.cnblogs.com/phonecom/p/e13a1ade55bc0b242be1d6b855edc707.html
Copyright © 2011-2022 走看看