zoukankan      html  css  js  c++  java
  • PHP 高级编程(5/5)

    ArrayAccess接口

    ArrayAccess接口是对象的行为看起来像个数组,定义了四个方法。接口概要如下:

    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 )
    }

    ArrayAccess接口自身没有提供计算书组重元素数量的功能,如果要计算数量可以通过实现Countble接口。这个接口包含了一个count()方法,并且返回元素的数量。

    <?php
    
    class MyArray implements ArrayAccess
    {
        protected $_arr;
        
        public function __construct()
        {
            $this->_arr = array();
        }
    
        public function offsetSet($offset, $value)
        {
            $this->_arr[$offset] = $value;
        }
    
        public function offsetGet($offset)
        {
            return $this->_arr[$offset];
        }
    
    
        public function offsetExists($offset)
        {
            return array_key_exists($offset, $this->_arr);
        }
    
        public function offsetUnset($offset)
        {
            unset($this->_arr[$offset]);
        }
    }
    
    $MyArray = new MyArray();
    $MyArray['first'] = 'test';
    echo $MyArray['first'];
    unset($MyArray['first']);
    
    ?>

    ArratObject 类介绍

    ArrayObject 类是一个 ArrayAccess 接口的实现类,它提供了迭代功能,以及很多用来排序和处理数据的非常有用的方法。

    ArrayObject implements IteratorAggregate , ArrayAccess , Serializable , Countable {
    /* Constants */
    const integer STD_PROP_LIST = 1 ;
    const integer ARRAY_AS_PROPS = 2 ;
    /* Methods */
    public __construct ([ mixed $input = [] [, int $flags = 0 [, string $iterator_class = "ArrayIterator" ]]] )
    public void append ( mixed $value )
    public void asort ( void )
    public int count ( void )
    public array exchangeArray ( mixed $input )
    public array getArrayCopy ( void )
    public int getFlags ( void )
    public ArrayIterator getIterator ( void )
    public string getIteratorClass ( void )
    public void ksort ( void )
    public void natcasesort ( void )
    public void natsort ( void )
    public bool offsetExists ( mixed $index )
    public mixed offsetGet ( mixed $index )
    public void offsetSet ( mixed $index , mixed $newval )
    public void offsetUnset ( mixed $index )
    public string serialize ( void )
    public void setFlags ( int $flags )
    public void setIteratorClass ( string $iterator_class )
    public void uasort ( callable $cmp_function )
    public void uksort ( callable $cmp_function )
    public void unserialize ( string $serialized )
    }
  • 相关阅读:
    推荐一个JavaScript触发器插件,可通过指定频次、指定时间内触发指定的处理函数
    TortoiseGit for windows安装与配置
    Postgresql 迁移随笔一
    三边定位 c#
    unset变量释放内存不起作用
    局域网下 连接别人的数据库授权
    iconv 参数详解
    urlencode()和rawurlencode()区别
    php数组函数
    php://input和parse_str()使用
  • 原文地址:https://www.cnblogs.com/kelsen/p/3798433.html
Copyright © 2011-2022 走看看