이 글에서 공유한 내용은 [php 클래스 및 객체] 순회에 관한 것으로, 이는 특정 참조 값을 가지고 있습니다. 필요한 친구들이 참고할 수 있습니다.
객체 탐색
PHP 5에서는 객체를 정의하는 방법을 제공합니다. 셀 목록을 통해 탐색 가능
기본적으로 모든 표시 속성은 탐색에 사용됩니다.
Example #1 简单的对象遍历(foreach 遍历所有其能够访问的可见属性。)<?phpclass 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();?>
Iterator 인터페이스(미리 정의된 인터페이스)를 구현합니다. 객체가 탐색 방법과 탐색할 때마다 어떤 값을 사용할 수 있는지 결정하도록 할 수 있습니다.
#接口摘要#Iterator extends Traversable { abstract public mixed current ( void ) //返回当前索引游标指向的元素 abstract public scalar key ( void ) //返回当前索引游标指向的键 abstract public void next ( void ) //移动当前索引游标到下一元素 abstract public void rewind ( void ) //重置索引游标 abstract public boolean valid ( void ) //判断当前索引游标指向的元素是否有效 } 当一个实现了Iterator接口的对象,被foreach遍历时,会自动调用这些方法。 调用的循序是:rewind() -> valid() -> current() -> key() -> next()
Example #2 实现 Iterator 接口的对象遍历<?phpclass MyIterator implements Iterator{ private $var = array(); public function __construct($array) { if (is_array($array)) { $this->var = $array; } } public function rewind() { echo "rewinding\n"; reset($this->var); } public function current() { $var = current($this->var); echo "current: $var\n"; return $var; } public function key() { $var = key($this->var); echo "key: $var\n"; return $var; } public function next() { $var = next($this->var); echo "next: $var\n"; return $var; } public function valid() { $var = $this->current() !== false; echo "valid: {$var}\n"; return $var; } }$values = array(1,2,3);$it = new MyIterator($values);foreach ($it as $a => $b) { print "$a: $b\n"; }?>
관련 추천:
위 내용은 [PHP 클래스 및 객체] 순회의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!