📅  最后修改于: 2023-12-03 15:25:37.559000             🧑  作者: Mango
在 PHP 中,可以使用循环遍历对象的属性和方法。在本文中,我们将介绍如何使用 foreach 循环和迭代器接口来遍历对象。
PHP 中的 foreach 循环允许您遍历数组和对象。下面是一个示例,展示如何使用 foreach 循环遍历对象:
class Vehicle {
public $model = "";
public $make = "";
public $year = "";
}
$car = new Vehicle();
$car->model = "Camry";
$car->make = "Toyota";
$car->year = "2016";
foreach($car as $key=>$value) {
echo $key . ": " . $value . "<br>";
}
输出:
model: Camry
make: Toyota
year: 2016
在此示例中,我们创建了一个名为 Vehicle
的类,并实例化了一个名为 car
的对象。然后,我们使用 foreach 循环遍历了这个对象,并将对象的属性作为键,属性值作为值输出。
PHP 中的迭代器接口可以让我们创建自定义的可遍历对象。迭代器接口定义了一些方法,可以让我们在对象上进行遍历。下面是一个示例,展示如何实现迭代器接口以遍历自定义对象:
class Book implements Iterator {
private $position = 0;
private $books = array(
"Catch 22",
"Fahrenheit 451",
"1984",
"Brave New World"
);
public function rewind() {
$this->position = 0;
}
public function current() {
return $this->books[$this->position];
}
public function key() {
return $this->position;
}
public function next() {
++$this->position;
}
public function valid() {
return isset($this->books[$this->position]);
}
}
$bookList = new Book;
foreach($bookList as $key=>$value) {
echo $key . ": " . $value . "<br>";
}
输出:
0: Catch 22
1: Fahrenheit 451
2: 1984
3: Brave New World
在此示例中,我们创建了一个名为 Book
的类,该类实现了迭代器接口。该类包含一个名为 books
的数组,可以在遍历对象时返回。该类的每个方法都是迭代器接口的方法。
在主程序中,我们实例化了一个名为 bookList
的新 Book
对象,并使用 foreach 循环遍历了该对象。在每次迭代中,foreach 循环调用 $bookList->current()
方法以获取当前元素,并将其输出。然后,foreach 循环通过调用 $bookList->next()
方法来移动到下一个元素。直到 $bookList->valid()
方法返回 false 为止,遍历将一直进行。