salut
voici j'ai trouver dans un bout de code cecidans une condition je vois l'interet mais la pas du toutCode:$num||$xml.="<$key>";
:roll:
que fait exactement ce petit bout de code
merci
Version imprimable
salut
voici j'ai trouver dans un bout de code cecidans une condition je vois l'interet mais la pas du toutCode:$num||$xml.="<$key>";
:roll:
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 voiciCode:
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:
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>";
merci :D
Je suis d'accord avec toi mais pourquoi pas ce code laCitation:
Envoyé par Mr N.
Code:
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.Citation:
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:
1
2
3 if (!$num) { $xml .= "<$key>"; }
Alors nous avons l'instruction suivante :Citation:
Envoyé par hackrobat
Ce qui donne en substance :Code:$num||$xml.="<$key>";
On sait que || est un opérateur dont la priorité est supérieur à l'opérateur .= (Cf. lien ci-dessus)Code: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: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:
1
2
3 si !A alors B .= C finsi
En esperant ne pas avoir dit de grosses betises ^^Code:
1
2
3 if (!$num) { $xml .= "<$key>"; }
lol oui je m'ai embrouilléCitation:
Envoyé par Kioob