Maison  >  Article  >  développement back-end  >  Explication détaillée de l'exemple de code du modèle Iterator de la classe PHP

Explication détaillée de l'exemple de code du modèle Iterator de la classe PHP

黄舟
黄舟original
2017-03-24 10:12:411148parcourir

Il s'agit de l'interface Iterator intégrée de PHP PHP5 commence à prendre en charge l'interface et possède une Interface Iterator intégrée, donc si vous définissez une classe A et implémentez l'interface Iterator, alors votre classeobjet est ZEND_ITER_OBJECT, sinon c'est ZEND_ITER_PLAIN_OBJECT.

Pour la classe ZEND_ITER_PLAIN_OBJECT, foreach obtiendra la valeur par défaut de l'objet via HASH_OF Attributetableau, puis effectuez foreach sur le tableau.
Pour l'objet de classe ZEND_ITER_OBJECT, le foreach sera effectué en appelant les fonctions liées à l'interface Iterator implémentées par l'objet, donc , pour cela Pour les questions d'examen écrit, vous pouvez donner les réponses suivantes :

<?php
class sample implements Iterator
{
private $_items = array(1,2,3,4,5,6,7);

public function __construct() {
     ;//void
}
public function rewind() { reset($this->_items); }
public function current() { return current($this->_items); }
public function key() { return key($this->_items); }
public function next() { return next($this->_items); }
public function valid() { return ( $this->current() !== false ); }
}

$sa = new sample();
foreach($sa as $key => $val){
print $key . "=>" .$val;
}
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn