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!