salut
voici j'ai trouver dans un bout de code cecidans une condition je vois l'interet mais la pas du tout
Code : Sélectionner tout - Visualiser dans une fenêtre à part $num||$xml.="<$key>";
![]()
que fait exactement ce petit bout de code
merci
salut
voici j'ai trouver dans un bout de code cecidans une condition je vois l'interet mais la pas du tout
Code : Sélectionner tout - Visualiser dans une fenêtre à part $num||$xml.="<$key>";
![]()
que fait exactement ce petit bout de code
merci
salut,
Qu'as tu autour de cette ligne ? Peux tu envoyer tout le code ?
Merci
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; }
C'est l'équivalent de :
Bref pas très lisible ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (!$num) { $xml .= "<$key>"; }
HTH
Pour plus d'infos :
http://php.net/language.operators#language.operators.precedence
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 suis d'accord avec toi mais pourquoi pas ce code laEnvoyé par Mr N.
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>"; }
??
Je ne suis pas d'accord. || est un opérateur de comparaison.Envoyé par polace
non plus, c'est un opérateur logique(cf la doc).
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>"; }![]()
Alors nous avons l'instruction suivante :Envoyé par hackrobat
Ce qui donne en substance :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $num||$xml.="<$key>";
On sait que || est un opérateur dont la priorité est supérieur à l'opérateur .= (Cf. lien ci-dessus)
Code : Sélectionner tout - Visualiser dans une fenêtre à part A || B .= C
Ca revient donc à :
Une particularité de ||, opérateur logique OU, est de ne pas évaluer l'expression droite si l'expression gauche est vraie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part A || (B .= C)
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 :
d'où ma déduction de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 si !A alors B .= C finsi
En esperant ne pas avoir dit de grosses betises ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (!$num) { $xml .= "<$key>"; }
Partager