PHP提供了一种使对象可遍历的方法,即通过单元列表来遍历对象,例如使用foreach语句。默认情况下,所有可见属性都将被用于遍历,这使得对象可以像数组一样被遍历和操作。要实现对象可遍历,需要在类中实现Iterator接口,并定义一系列方法,如rewind()、current()、key()和next()等。
这些方法用于实现遍历过程中的不同操作,包括返回当前元素、返回键值和获取下一个元素等。通过实现Iterator接口和相应的方法,我们可以为对象添加可遍历的功能,从而方便地在代码中处理对象集合。
简单的对象遍历
<?php class MyClass { public $var1 = 'value 1'; public $var2 = 'value 2'; public $var3 = 'value 3'; protected $protected = 'protected var'; private $private = 'private var'; function iterateVisible() { echo "MyClass::iterateVisible:\n"; foreach ($this as $key => $value) { print "$key => $value\n"; } } } $class = new MyClass(); foreach($class as $key => $value) { print "$key => $value\n"; } echo "\n"; $class->iterateVisible(); ?>
以上示例会输出:
var1 => value 1 var2 => value 2 var3 => value 3 MyClass::iterateVisible: var1 => value 1 var2 => value 2 var3 => value 3 protected => protected var private => private var
如上所示,《PHP foreach语句》遍历了所有其能够访问的可见属性。