downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

IteratorAggregate::getIterator> <Iterator::valid
[edit] Last updated: Wed, 22 May 2013

view this page in

L'interface IteratorAggregate

(PHP 5 >= 5.0.0)

Introduction

Interface pour créer un itérateur externe.

Sommaire de l'Interface

IteratorAggregate extends Traversable {
/* Méthodes */
abstract public Traversable getIterator ( void )
}

Exemple #1 Exemple simple

<?php
class myData implements IteratorAggregate {
    public 
$property1 "Propriété publique numéro un";
    public 
$property2 "Propriété publique numéro deux";
    public 
$property3 "Propriété publique numéro trois";

    public function 
__construct() {
        
$this->property4 "dernière propriété";
    }

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

$obj = new myData;

foreach(
$obj as $key => $value) {
    
var_dump($key$value);
    echo 
"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(9) "property1"
string(19) "Propriété publique numéro un"

string(9) "property2"
string(19) "Propriété publique numéro deux"

string(9) "property3"
string(21) "Propriété publique numéro trois"

string(9) "property4"
string(13) "dernière propriété"

Sommaire



add a note add a note User Contributed Notes IteratorAggregate - [1 notes]
up
1
Tab Atkins
1 year ago
Note that, at least as of 5.3, you still aren't allowed to return a normal Array from getIterator().

In some places, the docs wrap the array into an ArrayObject and return that.  DON'T DO IT.  ArrayObject drops any empty-string keys on the floor when you iterate over it (again, at least as of 5.3).

Use ArrayIterator instead.  I wouldn't be surprised if it didn't have its own set of wonderful bugs, but at the very least it works correctly when you use it with this method.

 
show source | credits | sitemap | contact | advertising | mirror sites