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 :

in_array selon exemple #3 de la doc


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 578
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 578
    Points : 804
    Points
    804
    Par défaut in_array selon exemple #3 de la doc
    Bonjour,

    Je ne comprends pas pourquoi aucune de ces écritures ne fonctionnent. La première me paraît pourtant correspondre à l'exemple #3 de la doc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    					print_r($errors);echo '<br/>';
    					echo LOG_ERR_LOG;
    					if ( in_array([LOG_ERR_LOG, LOG_ERR_ID, LOG_ERR_PW], $errors) ) {
    						echo 'xxx';
    					}
    					if ( in_array($errors, [LOG_ERR_LOG, LOG_ERR_ID, LOG_ERR_PW]) ) {
    						echo 'xxx';
    					}
    Les lignes 1 et 2 renvoient ceci:
    Array ( [0] => [1] => Votre mot de passe ou votre identifiant est manquant. )
    Votre mot de passe ou votre identifiant est manquant.

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    En fait si tu exécute le code suivant tu verras xxx2 affiché.

    En fait in_array contrôle que le tableau tout entier est dans $errors ce qui n'est pas le cas.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php
    $errors = array('', 'Votre mot de passe ou votre identifiant est manquant.');
    define('LOG_ERR_LOG','Votre mot de passe ou votre identifiant est manquant.');
    define('LOG_ERR_ID','blabla.');
    define('LOG_ERR_PW','blablabla.'); 
    $LOG_ERR_LOG = 'Votre mot de passe ou votre identifiant est manquant.';
    print_r($errors);echo '<br/>';
    echo LOG_ERR_LOG;
     
    if ( in_array([LOG_ERR_LOG, LOG_ERR_ID, LOG_ERR_PW], $errors) ) {
     echo 'xxx1';
    }
    if ( in_array(LOG_ERR_LOG, $errors) ) {
     echo 'xxx2';
    }
    if ( in_array($errors, [LOG_ERR_LOG, LOG_ERR_ID, LOG_ERR_PW]) ) {
     echo 'xxx3';
    }
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 578
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 578
    Points : 804
    Points
    804
    Par défaut
    Ah, OK, merci. C'est ta remarque en gras qui m'a aidé à comprendre mon erreur. J'ai fait une boucle pour tester chaque constante avec une fonction.

  4. #4
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Tu peux peut-être utiliser array_intersect.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (count(array_intersect([a,b,c],$errors)) > 0) {
        ....
    }
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 578
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 578
    Points : 804
    Points
    804
    Par défaut
    Bonjour et merci pour cette excellente idée qui raccourcit mon code de moitié.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Modbus][Ethernet][TSX 5103] Exemple Trames et doc
    Par franck.automaticien dans le forum Automation
    Réponses: 1
    Dernier message: 27/02/2008, 00h06
  2. demande de doc, exemples Hibernate
    Par emma3345 dans le forum Hibernate
    Réponses: 9
    Dernier message: 01/10/2007, 11h22
  3. Réponses: 7
    Dernier message: 01/08/2007, 16h06
  4. bug avec exemple de la doc de miscrosoft
    Par snooopy007 dans le forum Access
    Réponses: 1
    Dernier message: 14/07/2006, 16h59

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