PHP遍歷物件

2021-08-29 02:54:26 字數 1437 閱讀 6105

php5提供了一種可以通過單元列表來遍歷物件的方法,如果foreach語句,預設情況下,所有public屬性都將被用於遍歷。如果在類方法中進行遍歷,還可以訪問protected和private屬性。從父類繼承的屬性也會被遍歷。

<?php

class a

}}$a=new a();

$a->showproperties();

foreach ($a as $key=>$value)

?>

如果乙個類實現了iterator介面,則可以自行決定如何遍歷以及每次遍歷哪些值。當對乙個實現了iterator介面的物件進行foreach遍歷的時候,會自動呼叫iterator介面中定義的方法,rewind()->valid()->current()->key()->next()->valid()->current()->key()->next().....->valid()直到valid()返回false結束遍歷。

遍歷之前先呼叫rewind重置指標,valid驗證是否迴圈結束,current獲取當前指標處的值,key獲取當前指標處的鍵,next移動指標,並返回移動後指標處的值。

<?php

class a implements iterator

public function rewind()

public function current()

public function key()

public function next()

public function valid() \n";

return $arr;

}}$a = new a("a","a1","a2","a3","a4");

foreach ($a as $k => $v)

?>

iteratoraggregate介面可以替代實現iterator的方法。只需要實現iteratoraggregate介面的getiterator方法即可,此方法應返回乙個實現了iterator介面的類的例項。

<?php

class a implements iteratoraggregate

function getiterator()

}class myiterator implements iterator

public function rewind()

public function current()

public function key()

public function next()

public function valid() \n";

return $arr;

}}$a=new a("a","a1","a2");

foreach ($a as $k => $v)

?>

php 物件遍歷

物件遍歷 foreach,遍歷物件的公有屬性 將公有屬性的值和屬性名賦值給對應 value和 key 遍歷某乙個屬性的陣列,實現iterator介面 介面iterator 類實現iterator介面 current 獲取當前陣列元素的值 this hobby this position key 獲取...

PHP物件導向 物件的遍歷

物件的遍歷和陣列的遍歷一樣,物件的遍歷指的是例項屬性的遍歷。下面遍歷出來的屬性,是在該範圍中的 可訪問屬性 要考慮訪問許可權 class a obj1 new a foreach obj1 as key value 執行結果 屬性p1 1可見只有public修飾的屬性才能遍歷,那如何使乙個物件的所有...

PHP遍歷物件屬性名稱

要寫乙個編輯器,需要遍歷物件屬性,並要獲取變數名稱,網上搜了許多帖子都不對症,就自己寫了個,測試並使用了下面的方法。include data taskitemspec.php task new taskitemspec task task id 1000 task name hello foreac...