PHP5之後新添加了一系列預定義介面,這些介面和實現的類統稱為SPL。這些介面中就有一個重量級介面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 )}
下面給出了該介面在Slim中的具體實現。Slim中定義了一個集合類Collection,該類提供了對集合對象的通用介面方法。其中該類繼承的CollectionInterface介面,就繼承了ArrayAccess預定義介面。
/*** 集合介面,在容器的設定中傳入一個數組,返回一個Collection對象。* Collection InterfaceCollectionInterface* @package Slim* @since 3.0.0 */interface CollectionInterface extends \ArrayAccess, \Countable, \IteratorAggregate{ public function set($key, $value); public function get($key, $default = null); public function replace(array $items); public function all(); public function has($key); public function remove($key); public function clear();} 說一下,Slim架構的Collection類。在Slim的容器Contianer中合并容器的預設配置$defaultSetting(類的私人變數)和使用者配置$userSetting(日誌,模板,資料庫配置等)之後,會返回了一個集合對象Collection。由於該集合對象繼承了ArrayAccess,我們在將設定檔依次載入後,就可以像運算元組一樣操作它啦。
本篇講解了PHP預定義介面之ArrayAccess的使用方法,該方法在php中有著重要的作用,更多相關內容請關注php中文網。