par
Ryle » 24 oct. 2012, 21:04
C'est une question de précédence des opérateurs... ou de priorité si tu préfères.
Comme en mathématique, la multiplication et la division sont prioritaire par rapport à l'addition et la soustraction, ainsi : " 2 + 1 x 3 " équivaut ) " 2 + (1 x 3) ", soit 5 et non pas à " (2 + 1) x 3 ", soit 5.
En php, c'est le même principe, et en l'occurrence, l'opérateur d'affectation (=) est prioritaire sur l'opérateur xor. PHP exécute donc le code ($c=$a) xor $b et non pas $c=($a xor $b)
Pour plus d'informations sur les précédences en php :
http://php.net/manual/fr/language.opera ... edence.php
Nota : c'est également pour cela qu'en php, il est fortement recommandé d'utiliser les opérateurs de comparaison || et && plutôt que OR et AND, à moins de savoir pourquoi on les utilises, puisque la priorité n'est pas la même.
Ps : j'adore le sheriff de l'espace

C'est une question de précédence des opérateurs... ou de priorité si tu préfères.
Comme en mathématique, la multiplication et la division sont prioritaire par rapport à l'addition et la soustraction, ainsi : " 2 + 1 x 3 " équivaut ) " 2 + (1 x 3) ", soit 5 et non pas à " (2 + 1) x 3 ", soit 5.
En php, c'est le même principe, et en l'occurrence, l'opérateur d'affectation (=) est prioritaire sur l'opérateur xor. PHP exécute donc le code ($c=$a) xor $b et non pas $c=($a xor $b)
Pour plus d'informations sur les précédences en php : http://php.net/manual/fr/language.operators.precedence.php
Nota : c'est également pour cela qu'en php, il est fortement recommandé d'utiliser les opérateurs de comparaison || et && plutôt que OR et AND, à moins de savoir pourquoi on les utilises, puisque la priorité n'est pas la même.
Ps : j'adore le sheriff de l'espace ;)