標籤:
在 PHP5 中多了一系列新介面。在 HaoHappy 翻譯的你可以瞭解到他們的應用。同時這些介面和一些實現的 Class 被歸為 Standard PHP Library(SPL)。在 PHP5 中加入了很多特性,使類的重載 (Overloading) 得到進一步的加強。ArrayAccess 的作用是使你的 Class 看起來像一個數組(PHP 的數組)。這點和 C# 的 Index 特性很相似。
下面是 ArrayAccess 的定義:
interface ArrayAccess
由於PHP的數組的強大,很多人在寫 PHP 應用的時候經常將配置資訊儲存在一個數組裡。於是可能在代碼中到處都是 global。我們換種方式?
class Configuration implements ArrayAccess { static private $config; private $configarray; private function __construct() { // init $this->configarray = array("Binzy" => "Male", "Jasmin" => "Female"); } public static function instance() { // if (self::$config == null) { self::$config = new Configuration(); } return self::$config; } //檢查一個位移位置是否存在 function offsetExists($index) { return isset($this->configarray[$index]); } //擷取一個位移位置的值 function offsetGet($index) { return $this->configarray[$index]; } //設定一個位移位置的值 function offsetSet($index, $newvalue) { $this->configarray[$index] = $newvalue; } //複位一個位移位置的值 function offsetUnset($index) { unset($this->configarray[$index]); }}$config = Configuration::instance();print_r($config);echo "<br/>";echo $config[‘Binzy‘];echo "<br/>";$config[‘Binzy‘] = ‘1222‘;echo $config[‘Binzy‘];
PHP的ArrayAccess介面介紹