国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP數組式訪問接口ArrayAccess用法分析

2024-05-05 00:01:39
字體:
來源:轉載
供稿:網友

本文實例講述了PHP數組式訪問接口ArrayAccess用法。分享給大家供大家參考,具體如下:

PHP  ArrayAccess接口又叫數組式訪問接口,該接口的作用是提供像訪問數組一樣訪問對象的能力。

接口摘要如下:

ArrayAccess {  // 獲取一個偏移位置的值  abstract public mixed offsetGet ( mixed $offset )  // 設置一個偏移位置的值  abstract public void offsetSet ( mixed $offset , mixed $value )  // 檢查一個偏移位置是否存在  abstract public boolean offsetExists ( mixed $offset )  // 復位一個偏移位置的值  abstract public void offsetUnset ( mixed $offset )}

例子說明:

<?php/*** ArrayAndObjectAccess* 該類允許以數組或對象的方式進行訪問** @author 瘋狂老司機*/class ArrayAndObjectAccess implements ArrayAccess {  /**   * 定義一個數組用于保存數據   *   * @access private   * @var array   */  private $data = [];  /**   * 以對象方式訪問數組中的數據   *   * @access public   * @param string 數組元素鍵名   */  public function __get($key) {    return $this->data[$key];  }  /**   * 以對象方式添加一個數組元素   *   * @access public   * @param string 數組元素鍵名   * @param mixed 數組元素值   * @return mixed   */  public function __set($key,$value) {    $this->data[$key] = $value;  }  /**   * 以對象方式判斷數組元素是否設置   *   * @access public   * @param 數組元素鍵名   * @return boolean   */  public function __isset($key) {    return isset($this->data[$key]);  }  /**   * 以對象方式刪除一個數組元素   *   * @access public   * @param 數組元素鍵名   */  public function __unset($key) {    unset($this->data[$key]);  }  /**   * 以數組方式向data數組添加一個元素   *   * @access public   * @abstracting ArrayAccess   * @param string 偏移位置   * @param mixed 元素值   */  public function offsetSet($offset,$value) {    if (is_null($offset)) {      $this->data[] = $value;    } else {      $this->data[$offset] = $value;    }  }  /**   * 以數組方式獲取data數組指定位置元素   *   * @access public   * @abstracting ArrayAccess   * @param 偏移位置   * @return mixed   */  public function offsetGet($offset) {    return $this->offsetExists($offset) ? $this->data[$offset] : null;  }  /**   * 以數組方式判斷偏移位置元素是否設置   *   * @access public   * @abstracting ArrayAccess   * @param 偏移位置   * @return boolean   */  public function offsetExists($offset) {    return isset($this->data[$offset]);  }  /**   * 以數組方式刪除data數組指定位置元素   *   * @access public   * @abstracting ArrayAccess   * @param 偏移位置   */  public function offsetUnset($offset) {    if ($this->offsetExists($offset)) {      unset($this->data[$offset]);    }  }}$animal = new ArrayAndObjectAccess();$animal->dog = 'dog'; // 調用ArrayAndObjectAccess::__set$animal['pig'] = 'pig'; // 調用ArrayAndObjectAccess::offsetSetvar_dump(isset($animal->dog)); // 調用ArrayAndObjectAccess::__issetvar_dump(isset($animal['pig'])); // 調用ArrayAndObjectAccess::offsetExistsvar_dump($animal->pig); // 調用ArrayAndObjectAccess::__getvar_dump($animal['dog']); // 調用ArrayAndObjectAccess::offsetGetunset($animal['dog']); // 調用ArrayAndObjectAccess::offsetUnsetunset($animal->pig); // 調用ArrayAndObjectAccess::__unsetvar_dump($animal['pig']); // 調用ArrayAndObjectAccess::offsetGetvar_dump($animal->dog); // 調用ArrayAndObjectAccess::__get?>

以上輸出:

boolean trueboolean truestring 'pig' (length=3)string 'dog' (length=3)nullnull

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 甘孜县| 宜君县| 高安市| 百色市| 杨浦区| 海林市| 泽州县| 广元市| 罗定市| 遂宁市| 当涂县| 桐庐县| 双江| 龙门县| 星子县| 大理市| 德惠市| 华池县| 吐鲁番市| 佛山市| 雅安市| 临城县| 天台县| 潮州市| 康乐县| 蒙自县| 郎溪县| 荃湾区| 斗六市| 贵定县| 邻水| 迭部县| 延安市| 凤凰县| 乐亭县| 彭山县| 嵩明县| 永靖县| 清水县| 勐海县| 丹江口市|