• php 以数组形式访问对象


    官方文档上:

    ArrayAccess {
    /* Methods */
    abstract public boolean offsetExists ( mixed $offset )
    abstract public mixed offsetGet ( mixed $offset )
    abstract public void offsetSet ( mixed $offset , mixed $value )
    abstract public void offsetUnset ( mixed $offset )
    }
    

      

    实现上面的方法,下面举个实例

    <?php
    /**
     * Created by PhpStorm.
     * User: wangHan
     * Date: 2016/10/21
     * Time: 14:07
     */
    class Human implements ArrayAccess
    {
        private $elements;
    
        public function __construct()
        {
            $this->elements = [
                "boy" => "male",
                "girl" => "female"
            ];
        }
    
        public function offsetExists($offset)
        {
            // TODO: Implement offsetExists() method.
            return isset($this->elements[$offset]);
        }
    
        public function offsetGet($offset)
        {
            // TODO: Implement offsetGet() method.
            return $this->elements[$offset];
        }
    
        public function offsetSet($offset, $value)
        {
            // TODO: Implement offsetSet() method.
            $this->elements[$offset] = $value;
        }
    
        public function offsetUnset($offset)
        {
            // TODO: Implement offsetUnset() method.
            unset($this->elements[$offset]);
        }
    }
    
    $human = new Human();
    $human['people'] = "boyAndGirl"; ////自动调用offsetSet
    if(isset($human['people'])) {   ////自动调用offsetExists
        echo $human['boy'];//自动调用offsetGet
        echo '<br />';
        unset($human['boy']);//自动调用offsetUnset
        var_dump($human['boy']);
    }
    // // 输出结果  male   null

     

  • 相关阅读:
    12. Hamming Distance
    11. Sort Array By Parity
    10. Robot Return to Origin
    9. DI String Match
    8. Unique Email Addresses
    7. Unique Morse Code Words
    6. <Important> Flipping an Image
    5.<Important> Delete Node in a Linked List
    ubuntu20.04 combile opencv 3.2.0(fix some problem)
    git@github.com: Permission denied (publickey)问题解决
  • 原文地址:https://www.cnblogs.com/burningc/p/9092829.html
Copyright © 2020-2023  润新知