zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    getParameter和getAttribute的区别
    forward和sendRedirect的区别
    关于html/css的路径问题
    手写ORM
    数据库其他使用方法介绍
    Navicat使用与python操作数据库
    表查询
    表与表之间的三种关系
    SQL语法
    MySQL数据库的安装与使用
  • 原文地址:https://www.cnblogs.com/burningc/p/9092829.html
Copyright © 2011-2022 走看看