陣列式訪問介面,該介面的作用是提供像訪問陣列一樣訪問物件的能力
arrayaccess
<?php
/*** arrayandobjectaccess
* 該類允許以陣列或物件的方式進行訪問
** @author 瘋狂老司機
*/class
arrayandobjectaccess
implements
arrayaccess
/*** 以物件方式新增乙個陣列元素
** @access public
* @param string 陣列元素鍵名
* @param mixed 陣列元素值
* @return mixed
*/public
function
__set(
$key
,$value
)
/*** 以物件方式判斷陣列元素是否設定
** @access public
* @param 陣列元素鍵名
* @return boolean
*/public
function
__isset(
$key
)
/*** 以物件方式刪除乙個陣列元素
** @access public
* @param 陣列元素鍵名
*/public
function
__unset(
$key
)
/*** 以陣列方式向data陣列新增乙個元素
** @access public
* @abstracting arrayaccess
* @param string 偏移位置
* @param mixed 元素值
*/public
function
offsetset(
$offset
,$value
) else
} /*** 以陣列方式獲取data陣列指定位置元素
** @access public
* @abstracting arrayaccess
* @param 偏移位置
* @return mixed
*/public
function
offsetget(
$offset
)
/*** 以陣列方式判斷偏移位置元素是否設定
** @access public
* @abstracting arrayaccess
* @param 偏移位置
* @return boolean
*/public
function
offsetexists(
$offset
)
/*** 以陣列方式刪除data陣列指定位置元素
** @access public
* @abstracting arrayaccess
* @param 偏移位置
*/public
function
offsetunset(
$offset
)
} }
$animal
= new
arrayandobjectaccess();
$animal
->dog =
'dog'
; // 呼叫arrayandobjectaccess::__set
$animal
['pig'
] =
'pig'
; // 呼叫arrayandobjectaccess::offsetset
var_dump(isset($animal
->dog));
// 呼叫arrayandobjectaccess::__isset
var_dump(isset($animal
['pig'
]));
// 呼叫arrayandobjectaccess::offsetexists
var_dump($animal
->pig);
// 呼叫arrayandobjectaccess::__get
var_dump($animal
['dog'
]);
// 呼叫arrayandobjectaccess::offsetget
unset($animal
['dog'
]);
// 呼叫arrayandobjectaccess::offsetunset
unset($animal
->pig);
// 呼叫arrayandobjectaccess::__unset
var_dump($animal
['pig'
]);
// 呼叫arrayandobjectaccess::offsetget
var_dump($animal
->dog);
// 呼叫arrayandobjectaccess::__get
?>
以上輸出:
boolean true
boolean true
string 'pig' (length=3)
string 'dog' (length=3)
null
null
PHP的ArrayAccess學習筆記
下面是 arrayaccess 的摘要 arrayaccess由於php的陣列的強大,很多人在寫 php 應用的時候經常將配置資訊儲存在乙個陣列裡。下面就來介紹下如何實現像訪問陣列一樣訪問物件。class objimplements arrayaccess set操作 public function...
PHP的ArrayAccess介面簡介
最近在研究php微框架slim的原始碼,slim中的依賴注入基於pimple,於是又去學習了一下pimple。對比之前自己寫的依賴注入類,pimple有乙個很新鮮的用法,不是採用 container session storage function c 而是以陣列方式進行注入 container s...
PHP預定義介面之 ArrayAccess
arrayaccess 的作用是使得你的物件可以像陣列一樣可以被訪問。應該說 arrayaccess 在php5中才開始有的,php5中加入了很多新的特性,當然也使類的過載也加強了,php5 中新增了一系列介面,這些介面和實現的 class 統稱為 spl。這個介面定義了4個必須要實現的方法 下面是...