PHP中文手册

版权信息

PHP 手册

入门指引

安装与配置

语言参考

安全

特点

函数参考

PHP 核心:骇客指南

FAQ

附录

ArrayAccess(数组式访问)接口

(No version information available, might only be in Git)

简介

提供像访问数组一样访问对象的能力的接口。

接口摘要

ArrayAccess {
/* 方法 */
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 )
}

Example #1 Basic usage

<?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 );
?>

以上例程的输出类似于:

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

Table of Contents