2011-11-10 6 views
0

Je ne sais pas si je l'ai subi des dommages du cerveau ou de la vue, mais je ne peux pas comprendre le comportement de ce code:multiplication PHP comportement bizarre

$po=1; 
$po2=0; 
echo $po.'*'.$po2.'='; 
if($po*$po2) $po=1; 
echo $po; 

Je pense que la sortie soit 1 * 0 = 0, mais en réalité c'est 1 * 0 = 1.

Répondre

3

$po est toujours 1. Vous l'initialisez à 1, et plus tard dans votre cas if, vous n'avez pas else. Donc, il reste 1.

Au lieu de cela, ajouter un `autre:

$po = 1; 
$po2 = 0; 
echo $po.'*'.$po2.'='; 
if ($po * $po2) { 

    // Unnecessary - it's already 1 
    $po = 1; 
} 
// Set it to 0... 
else { 
    $po = 0; 
} 
echo $po; 
+0

Oh, merci beaucoup, haha – user965748