Juste un truc: or != ||. Ca fait la même chose, mais pas au même niveau. La précédence de or n'est pas la même que ||.
Si tu fais, la lecture ne sera pas la même :
$a = $x or $y; -> $a = ($a or $b);
$a = $x || $y; -> ($a = $x) || $y;
Dans la plupart des cas, c'est pareil car tu as des opérateurs de plus hautes précédences (==, &&, etc) mais dans ce cas là non.
---------------
La Bibliothèque de Neverwinter Nights