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 :

que donne ||


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut que donne ||
    salut
    voici j'ai trouver dans un bout de code cecidans une condition je vois l'interet mais la pas du tout



    que fait exactement ce petit bout de code

    merci

  2. #2
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Points : 127
    Points
    127
    Par défaut
    salut,

    Qu'as tu autour de cette ligne ? Peux tu envoyer tout le code ?

    Merci

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    le voici
    Code : 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
    20
    21
    22
    23
    24
    25
    26
    27
    static public function _array2xml($array,$level=1) {
    		if($level==1)
    		$xml="<root>";
    		foreach($array as $key=>$val) {
    			$num=is_numeric($key);
    			if(!isset($xml))$xml="";
    			$num||$xml.="<$key>";
     
    			if(is_array($val)) {
    				$subNum=is_numeric(key($val));
    				if($subNum) {
    					$mergeVal=implode("</$key><$key>",$val);
    					$xml.=$mergeVal."</$key>";
    					continue;
    				}
    				$xml.=$this->_array2xml($val,$level+1);
    			} else {
    				$xml.=$val;
    			}
     
    			list($key,)=explode(' ',$key);
    			$num||$xml.="</$key>";
    		}
    		if($level==1)
    		$xml.="</root>";
    		return $xml;
    	}

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    C'est l'équivalent de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (!$num) {
       $xml .= "<$key>";
    }
    Bref pas très lisible ^^

    HTH

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Pour plus d'infos :
    http://php.net/language.operators#language.operators.precedence

  6. #6
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    Salut
    le Signe "||" est un opérateur de concatenation tout comme celui "."
    ce bout de code veut dire que la variable $key est égale à la variable
    $num ou à la variable $xml (associé à la variable $key)
    ça parrait bizarre mais il faut un peu plus de ton code pour mieux cerner.
    quelqu'un pourrait_il apporter un éclairçicement ?

    $num||$xml.="<$key>";

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    merci

  8. #8
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par Mr N.
    C'est l'équivalent de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (!$num) {
       $xml .= "<$key>";
    }
    Je suis d'accord avec toi mais pourquoi pas ce code la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (!$num) {
       $xml .= "<$key>";
    }
    else if (!$xml) {
       $num .= "<$key>";
    }

    ??

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par polace
    Salut
    le Signe "||" est un opérateur de concatenation tout comme celui "."
    ce bout de code veut dire que la variable $key est égale à la variable
    $num ou à la variable $xml (associé à la variable $key)
    ça parrait bizarre mais il faut un peu plus de ton code pour mieux cerner.
    quelqu'un pourrait_il apporter un éclairçicement ?

    $num||$xml.="<$key>";
    Je ne suis pas d'accord. || est un opérateur de comparaison.

  10. #10
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    non plus, c'est un opérateur logique (cf la doc).

  11. #11
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Points : 127
    Points
    127
    Par défaut
    Autant pour moi, c'est de l'associativité par la gauche donc ca ne peut prendre que cette tournure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!$num) {
       $xml .= "<$key>";
    }

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par hackrobat
    Je suis d'accord avec toi mais pourquoi pas ce code la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (!$num) {
       $xml .= "<$key>";
    }
    else if (!$xml) {
       $num .= "<$key>";
    }
    Alors nous avons l'instruction suivante :
    Ce qui donne en substance :
    On sait que || est un opérateur dont la priorité est supérieur à l'opérateur .= (Cf. lien ci-dessus)
    Ca revient donc à :
    Une particularité de ||, opérateur logique OU, est de ne pas évaluer l'expression droite si l'expression gauche est vraie.

    Donc :
    si A est vrai alors on évalue pas l'expression B .= C
    si A est faux alors on évalue l'expression B .= C

    Ce qui se déduit par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    si !A alors
       B .= C
    finsi
    d'où ma déduction de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!$num) {
       $xml .= "<$key>";
    }
    En esperant ne pas avoir dit de grosses betises ^^

  13. #13
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par Kioob
    non plus, c'est un opérateur logique (cf la doc).
    lol oui je m'ai embrouillé

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

Discussions similaires

  1. [AC-2007] Doublon de données alors que donnée indexée sans doublon
    Par Lyysis dans le forum IHM
    Réponses: 6
    Dernier message: 22/07/2013, 10h24
  2. Réponses: 11
    Dernier message: 13/07/2009, 18h12
  3. Réponses: 0
    Dernier message: 11/07/2009, 16h36
  4. Erreur 3021 alors que données
    Par rozidb dans le forum VBA Access
    Réponses: 9
    Dernier message: 22/06/2009, 11h32
  5. que donne l'exécution de ce code
    Par acacia dans le forum C
    Réponses: 13
    Dernier message: 22/02/2008, 14h31

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