2017-09-29 15 views
5

나는 초보자이며 php.net에서 배우기 쉽다. (내장)PHP에서 foreach 루프에서 IterateAggregate 또는 Iterator를 사용할 수 있습니까?

내부 foreach는 구조에서 사용할 수있는이 인터페이스를 구현하고 IteratorAggregate 또는 Iterator를 구현 할 필요가 없습니다 클래스 : 해당 페이지 (http://php.net/manual/en/class.traversable.php)에 참고는 말한다.

무엇이 참고이 말하는가요? 그것은 어떤 클래스도없이 foreach 루프 내에 IteratorAggregate 또는 Iterator을 사용할 수 있다는 것을 의미합니까 아니면 잘못되었을 수 있습니다. 아무도 이것을 할 수있는 무엇을 말할 수 참고 말한다 ??

class FooBarClass implements IteratorAggregate 
{ 
    public $property = "Nothing to see"; 

    public function __construct() 
    { 
    } 

    public function getIterator() 
    { 
     return new ArrayIterator($this); 
    } 
} 

$obj = new FooBar; 

foreach($obj as $key => $value) { 
    print(var_dump($key, $value) . "\n"); 
} 

Iterator는 외부 반복자을위한 인터페이스 :

답변