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 :

Information à propos de strcmp


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Points : 24
    Points
    24
    Par défaut Information à propos de strcmp
    Bonjour, j'aurais besoin d'informations a propos de strcmp. Je sais que c'est une fonction utile lors de comparaison de string et qu'elle retourne 1,-1 ou 0 mais je voudrais savoir quel est le but d'effectuer une comparaison en utilisant !strcmp ?

    Sachant que la fonction retourne d'origine 3 resultats possibles, j'aurais besoin d'information dessus.

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Une grande règle de la programmation : quand on a le nom d'une fonction et qu'on veut des infos dessus, on fait une recherche Google -> résultats garantis!

  3. #3
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    voici un petit test instructif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $str1 = 'chaine';
    $str2 = 'chaine deux';
    $str3 = 'chaine 3';
    echo $str1.' - '.$str2.' - '.$str3.'<br />';
    echo strcmp($str1,$str2).'<br />';
    echo strcmp($str1,$str3).'<br />';
    echo strcmp($str2,$str3).'<br />';
     
    ?>
    qui affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    chaine - chaine deux - chaine 2
    -5
    -2
    1

  4. #4
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Citation Envoyé par haltabush
    Une grande règle de la programmation : quand on a le nom d'une fonction et qu'on veut des infos dessus, on fait une recherche Google -> résultats garantis!
    EXACTEMENT ! on a pas écrit 'doc en ligne' sur le front ...
    Mieux que google pour des infos sur une fonction php, la doc officielle php qui répertorie les specs de toutes les fonctions php, y compris strcmp

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Mis a part le fait que je me suis trompe sur les valeurs de retour de STRCMP qui sont en fait 0, <1 et >1. Avant de poser ma question, j'ai d'abord cherche sur internet, donc la remarque n'etait pas vraiment utile.
    De plus ce que je cherche precisement c'est l'utilite de l'utilisation dans un if de !strcmp et non de strcmp dans sa version simple car sa definition est deja disponible sur php.net !!
    Merci tout de meme d'avoir voulu m'eclairer la dessus.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Pour une simple comparaison autant utiliser directement l'opérateur !=. La fonction strcmp est utile pour procéder à des tris puisque suivant la valeur renvoyée on sait si les chaînes sont identiques ou non ou comment elles se situent l'une par rapport à l'autre (ordre lexicographique).

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par julp
    Pour une simple comparaison autant utiliser directement l'opérateur !=. La fonction strcmp est utile pour procéder à des tris puisque suivant la valeur renvoyée on sait si les chaînes sont identiques ou non ou comment elles se situent l'une par rapport à l'autre (ordre lexicographique).
    Je comprend mais malheureusement je ne comprend pas l'utilite de la negation dans le cas ou les resultats retournes peuvent etre de 3 valeurs differentes et c'est sur cela que j'aurais besoin d'aide afin d'eclairer ma lanterne.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Un petit rappel s'impose : sont considérées comme fausses les valeurs suivantes : FALSE, zéro (forme entière 0 comme les formes décimales - 0.00), chaîne vide ('' ou encore ""), une chaîne ne comportant que le caractère zéro ('0'), un tableau vide et NULL.

    Ici c'est la valeur numérique entière nulle qui nous intéressent donc !strcmp($str1, $str2) équivaut à strcmp($str1, $str2) == 0 ou encore à $str1 == $str2 (donc les chaînes sont identiques).

    On peut reprendre l'inverse : strcmp($str1, $str2) équivaut à strcmp($str1, $str2) != 0 ou encore $str1 != $str2.

  9. #9
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    POur ma part, pour vérifier que 2 chaines sont différentes, je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (false!==(strcmp($str1, $str2))){

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par julp
    Un petit rappel s'impose : sont considérées comme fausses les valeurs suivantes : FALSE, zéro (forme entière 0 comme les formes décimales - 0.00), chaîne vide ('' ou encore ""), une chaîne ne comportant que le caractère zéro ('0'), un tableau vide et NULL.

    Ici c'est la valeur numérique entière nulle qui nous intéressent donc !strcmp($str1, $str2) équivaut à strcmp($str1, $str2) == 0 ou encore à $str1 == $str2 (donc les chaînes sont identiques).

    On peut reprendre l'inverse : strcmp($str1, $str2) équivaut à strcmp($str1, $str2) != 0 ou encore $str1 != $str2.
    D'accord, merci c'est beaucoup plus clair pour moi.

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

Discussions similaires

  1. Méthodes JAVA fournissant des informations à propos une application
    Par L'aigle de Carthage dans le forum Général Java
    Réponses: 1
    Dernier message: 15/06/2011, 09h17
  2. [Debian] information à propos de VNC
    Par Klimium dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 22/05/2009, 18h36
  3. Besoin d'informations à propos d'AMANDA
    Par quaresma dans le forum Sécurité
    Réponses: 2
    Dernier message: 28/12/2007, 13h46
  4. Demande d'information à propos certification microsoft
    Par thelover2fr dans le forum Emploi
    Réponses: 1
    Dernier message: 19/06/2007, 00h02
  5. [db4o] Quelles informations à propos de cet SGBDO ?
    Par diesel dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 05/12/2006, 09h59

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