Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1018 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  interface arrayiterator de base dans php5?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

interface arrayiterator de base dans php5?

n°2035442
mobil12
Posté le 11-11-2010 à 16:48:27  profilanswer
 

salut .  
ptite question  
 
j'ai decouvert il y a peu les interfaces predefinies qui permettent de parcourir les objets.  
j'ai lu dans des tutos qu'il y a une interface qui permet , une fois implementée de parcourir un objet avec foreach sous la forme par exemple :
 
foreach ($object as $champ => $valeurchamp)
 
mais voila . j'ai decouvert les interfaces la semaine derniere mais je donne du foreach sur objet depuis plusieurs mois, si ce n'est pas année .
conclusion ; cette interface existe de base sur toutes les classes sans devoir l'implementer? sinon pourquoi un foreach sur obj fonctionne ?  
merci pour vos eclaircissements.

mood
Publicité
Posté le 11-11-2010 à 16:48:27  profilanswer
 

n°2035446
flo850
moi je
Posté le 11-11-2010 à 17:53:01  profilanswer
 

parcequ'en fait un objet est implémenté comme un tableau , mais ca ne permet que d'iterer sur tous les membres publics

 

Ca ne permet pas ce genre de truc :

Code :
  1. class BiduleCollection implements Iterator
  2. {
  3.     private $_collection =array();
  4.     private $status = false;
  5.     public $name;
  6.  
  7. // ici , tu redefinis tes méthode, je ne le fais pas parceque je suis faineant
  8.  public function rewind();
  9.    public function key();
  10.    public function current();
  11.    public function next();
  12.    public function valid();
  13.  
  14. }
  15. $bc = new BiduleCollection();
  16.  
  17. foreach($bc ad $bidule)
  18. {
  19.    $bidule->pouet();
  20. }
 


Message édité par flo850 le 11-11-2010 à 17:53:56
n°2035453
mobil12
Posté le 11-11-2010 à 18:25:20  profilanswer
 

a ok .  
la reponse comme j'aime : en 10 mots tout est dit .  
 
super grand merci.  

n°2035757
stealth35
Posté le 13-11-2010 à 03:43:45  profilanswer
 

ou utilise l'interface IteratorAggregate qui sera beaucoup plus simple

 
Code :
  1. class BiduleCollection implements IteratorAggregate
  2. {
  3.    private $status = false;
  4.    public $name;
  5.  
  6.    public function getIterator()
  7.    {
  8.        return new ArrayIterator($this);
  9.    }
  10. }
  11.  
  12. $bc = new BiduleCollection();
  13.    
  14. foreach($bc as $bidule)
  15. {
  16.    $bidule->pouet();
  17. }


Message édité par stealth35 le 13-11-2010 à 03:45:04

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  interface arrayiterator de base dans php5?

 

Sujets relatifs
Copier une base MySQL dans SQL Server 2008 [Resolu]Script pour visualiser base de donnée SQL server
Interface console décente[SQL] Base chez Free intérogée par autre site
Installation Ocaml : Interface GraphiqueDOM est - il installé avec PHP5
Base ACCESSPartager une base Php entre 2 appli
Incrémenter des données dans une base MySql[script batch] accès à la base de registre
Plus de sujets relatifs à : interface arrayiterator de base dans php5?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR