The ArrayAccess interface

  1. 接口内容

    ArrayAccess {
     /* Methods */
     abstract public offsetExists ( mixed $offset ) : bool
     abstract public offsetGet ( mixed $offset ) : mixed
     abstract public offsetSet ( mixed $offset , mixed $value ) : void
     abstract public offsetUnset ( mixed $offset ) : void
    }
  2. 案例

    <?php
    class Obj implements ArrayAccess {
     private $container = array();
     public function __construct() {
         $this->container = array(
             "one"   => 1,
             "two"   => 2,
             "three" => 3,
         );
     }
    
     public function offsetSet($offset, $value) {
         if (is_null($offset)) {
             $this->container[] = $value;
         } else {
             $this->container[$offset] = $value;
         }
     }
    
     public function offsetExists($offset) {
         return isset($this->container[$offset]);
     }
    
     public function offsetUnset($offset) {
         unset($this->container[$offset]);
     }
    
     public function offsetGet($offset) {
         return isset($this->container[$offset]) ? $this->container[$offset] : null;
     }
    }
    $obj = new Obj;
    var_dump(isset($obj["two"]));
    var_dump($obj["two"]);
    unset($obj["two"]);
    var_dump(isset($obj["two"]));
    $obj["two"] = "A value";
    var_dump($obj["two"]);
    $obj[] = 'Append 1';
    $obj[] = 'Append 2';
    $obj[] = 'Append 3';
    print_r($obj);
    ?>
  3. 案例结果

     bool(true)
     int(2)
     bool(false)
     string(7) "A value"
     obj Object
     (
         [container:obj:private] => Array
             (
                 [one] => 1
                 [three] => 3
                 [two] => A value
                 [0] => Append 1
                 [1] => Append 2
                 [2] => Append 3
             )
     )
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!