在php中,有時候我們想像數(shù)組一樣使用類來進行增刪改查,那么正確的方法應該是讓相應類實現(xiàn)
ArrayAccess
接口样勃,重寫ArrayAccess
的接口方法⌒苑遥【內(nèi)容參考php5權威編程】
正常使用
$obj = new TestArrayTypeObj;
echo $obj->name;
想要的效果
$obj = new TestArrayTypeObj;
echo $obj['name'];
具體實現(xiàn)
需要實現(xiàn)的四個接口方法分別是
-
offsetExists
判斷索引是否存在 -
offsetGet
取出索引對應的值 -
offsetSet
設置索引對應值 -
offsetUnset
刪除索引
class TestArrayTypeObj implements ArrayAccess{
private $arr = ['name'=>'yemin', 'age'=>24];
function offsetExists($name)
{
return array_key_exists($name, $this->arr);
}
function offsetGet($name)
{
return $this->arr[$name];
}
function offsetSet($name, $value)
{
return $this->arr[$name] = $value;
}
function offsetUnset($name)
{
unset($this->arr[$name]);
}
}
當然上述的方法沒有進行安全檢驗峡眶,有需要的時候可以再補充,另外內(nèi)部的$arr
大家可以通過編寫類方法或者構造函數(shù)將其變成大家需要的數(shù)據(jù)植锉,或則操作句柄(如數(shù)據(jù)庫操作類/文件)進行對應的增刪改查操作;