PHP物件使用陣列形式訪問成員變數

2021-10-04 07:17:29 字數 904 閱讀 4349

php中有很多介面類,不過平時都不會怎麼用到.一般訪問php類的變數都是使用類->變數名進行訪問.

除了這樣還可以實現介面類用陣列方式進行訪問類["變數名"]

需要實現的是arrayaccess介面類並且實現這個介面的4個方法就可以了.

//判斷存在

public function offsetexists($offset);

//獲取時

public function offsetget($offset);

//設定時

public function offsetset($offset, $value);

//刪除時

public function offsetunset($offset);

是不是有點像php類的魔術方法呢? __get __set __unset  __isset

class test implements arrayaccess 

public function offsetget($offset)

public function offsetset($offset, $value)

public function offsetunset($offset)

}

$obj = new test();

$obj['a'] = '1';//設定a = 1

$obj['b'] = '2';//設定b = 2

var_dump(isset($obj['c']));//判斷c

var_dump(isset($obj['a']));//判斷a

unset($obj['a']);//刪除a

if(isset($obj['a']))

php使用陣列語法訪問物件

有乙個物件,不過希望能用陣列的語法來讀寫資料,可以使用 實現spl的arrayaccess介面來解決。使用場景 載入配置檔案類。larvel框架載入配置檔案就這利用陣列來操作物件。陣列式訪問object 必須實現下面 個方法 offsetexists 指定乙個元素是否已定義 offsetget 獲取...

PHP物件導向 物件中成員的訪問

ps 參考 細說php php物件導向 物件中成員的訪問 宣告乙個類 class person function run 例項化類中的物件 person1 new person person2 new person person3 new person 給 persion1物件中的屬性賦初值 per...

c 物件的使用和成員訪問

物件的定義有兩種方式。第一種在宣告類的同時,去定義,直接寫出類的物件名錶 class object obj1,obj2 第二種使用的時候進行定義 class object int main 物件中成員的訪問 1 通過物件名或者通過物件選擇符訪問,此時要用 操作符。include using name...