IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Pourquoi utiliser Iterator alors qu'on a foreach ?


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Pourquoi utiliser Iterator alors qu'on a foreach ?
    Bonjour à toutes et à tous,

    J'essaie d'aller toujours plus loin dans l'utilisation de php.

    J'essaie donc de comprendre "Iterator" dont voici mes questions :

    1) Pourquoi utiliser iterator alors que le foreach fait la même chose (avec moins de code il me semble)
    2) Quand on implémente Iterator dans une classe, on doit toujours écrire les méthodes next, key... ?

    Merci d'avance pour vos réponses.

    bee

  2. #2
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    J'ai trouvé une partie de la réponse grâce à un super tuto de ce site :

    Iterator modifie le comportement de la structure foreach() de PHP
    Maintenant, faut savoir quand l'utiliser.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    1- Justement pour pouvoir utiliser foreach ou for sur ton objet.
    2- c'est le principe quand on implémente une interface. Une interface est un contrat que tu conclus avec l'utilisateur de ta classe, et ce contrat exige que tu écrives une implémentation concrète de toutes les méthodes de l'interface.
    3- Les generators sont mieux.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    je voudrais pas te tromper mais :

    1 ) foreach balai des clés => valeurs quelque soit l'objet

    2 ) Iterator balai des objets itérables... la plupart des objets de php sont itérable mais pas tous. et l'Iterator de php n'est pas compatible avec toutes les versions de php.

    3 ) ne pas confondre Itération logique avec le Iterator natif de php

    Conception / Dev

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par ascito Voir le message
    je voudrais pas te tromper mais :

    1 ) foreach balai des clés => valeurs quelque soit l'objet
    Uniquement les propriétés auxquelles le script client a accès (dans la majorité des cas, les propriétés publiques). L'utilisateur permet de modifier et contrôler cela, et même de parcourir des valeurs qui "n'existent pas" dans l'objet (crées à la volées par exemple).

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/10/2010, 12h33
  2. Pourquoi utiliser XML?
    Par Community Management dans le forum XML/XSL et SOAP
    Réponses: 23
    Dernier message: 12/09/2008, 16h33
  3. [MySQL] [UTF-8] Pourquoi utiliser utf8_encode() alors que la page web et la DB sont en utf8 ?
    Par Tchupacabra dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 25/02/2008, 15h11
  4. Réponses: 8
    Dernier message: 11/01/2008, 05h51
  5. Réponses: 9
    Dernier message: 26/07/2007, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo