Spécifie si le contenu d'un élément est modifiable ou non
PHP fournit une façon de définir les objets de manière à ce qu'on puisse parcourir une
liste de membres avec une structure foreach.
Par défaut, toutes les propriétés visibles seront
utilisées pour le parcours.
Exemple :
Sélectionner le code
<?php
class MyClass
{
public $var1 = 'valeur 1';
public $var2 = 'valeur 2';
public $var3 = 'valeur 3';
protected $protected = 'variable protégée';
private $private = 'variable privée';
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();
Ce qui affiche
var1 => valeur 1
var2 => valeur 2
var3 => valeur 3
MyClass::iterateVisible:
var1 => valeur 1
var2 => valeur 2
var3 => valeur 3
protected => variable protégée
private => variable privée
Comme nous le montre l'affichage, l'itération foreach affiche toutes les variables visiblesdisponibles. Pour aller plus loin, vous pouvez implémenter l 'interface interne de PHP nommée Iterator . Ceci permet de déterminer comment l'objet doit être parcouru.
Exemple :
Sélectionner le code
<?php
class MyIterator implements Iterator
{
private $var = array();
public function __construct($array)
{
if (is_array($array)) {
$this->var = $array;
}
}
public function rewind()
{
echo "rembobinage\n";
reset($this->var);
}
public function current()
{
$var = current($this->var);
echo "actuel : $var\n";
return $var;
}
public function key()
{
$var = key($this->var);
echo "clé : $var\n";
return $var;
}
public function next()
{
$var = next($this->var);
echo "suivant : $var\n";
return $var;
}
public function valid()
{
$key = key($this->var);
$var = ($key !== NULL && $key !== FALSE);
echo "valide : $var\n";
return $var;
}
}
$values = array(1,2,3);
$it = new MyIterator($values);
foreach ($it as $a => $b) {
print "$a: $b\n";
}
?>
Ce qui affiche
rembobinage
valide : 1
actuel : 1
clé : 0
0: 1
suivant : 2
valide : 1
actuel : 2
clé : 1
1: 2
suivant : 3
valide : 1
actuel : 3
clé : 2
2: 3
suivant :
valide :
Note:
Pour plus d'exemples sur le parcours d'objets, lisez la section sur l' extension Bibliothèque standard PHP.
SCREEBER - Logiciel de copywriting Augmentez vos résultats en rejoignant les 1600 entrepreneurs qui utilisent Screeber®, le seul logiciel de Copywriting (en français) qui rédige avec vous des textes de vente qui convertissent