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




  • 相关阅读:
    spark学习
    推荐系统-摘录
    matplotlib安装问题解决
    秒杀系统分析
    大数据常用启动命令
    推荐系统简介
    java面试-JVM内存结构
    推荐算法-基于内容的推荐
    推荐算法-基于模型的协同过滤
    监督学习之模型评估与选择
  • 原文地址:https://www.cnblogs.com/phonecom/p/e13a1ade55bc0b242be1d6b855edc707.html
Copyright © 2011-2022 走看看