1. 程式人生 > >php 以數組形式訪問對象

php 以數組形式訪問對象

pan hit 輸出 16px unset const implement imp tle

官方文檔上:

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

<?php /** * Created by PhpStorm. * User: wangHan * Date: 2016/10/21 * Time: 14:07 */class Human implements ArrayAccess {private$elements; publicfunction __construct() {$this->elements = [ "boy" => "male", "girl" => "female" ]; } publicfunction offsetExists($offset) {// TODO: Implement offsetExists() method.returnisset($this->elements[$offset]); } publicfunction offsetGet($offset) {// TODO: Implement offsetGet() method.return$this->elements[$offset]; } publicfunction offsetSet($offset, $value) {// TODO: Implement offsetSet() method.$this->elements[$offset] = $value; } publicfunction offsetUnset($offset) {// TODO: Implement offsetUnset() method.unset($this->elements[$offset]); } } $human = new Human(); $human[‘people‘] = "boyAndGirl"; ////自動調用offsetSetif(isset($human[‘people‘])) { ////自動調用offsetExistsecho$human[‘boy‘];//自動調用offsetGetecho‘<br />‘; unset($human[‘boy‘]);//自動調用offsetUnset var_dump($human[‘boy‘]); } // // 輸出結果 male null

php 以數組形式訪問對象