Странное поведение умножения PHP - PullRequest
0 голосов
/ 10 ноября 2011

Я не знаю, получил ли я какое-либо повреждение мозга или зрения, но я не могу понять поведение этого кода:

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

Я ожидаю, что результат будет 1 * 0 = 0, но на самом деле это 1 * 0 = 1.

1 Ответ

3 голосов
/ 10 ноября 2011

$po всегда 1. Вы инициализируете его 1, а позже в вашем if случае у вас нет else.Таким образом, остается 1.

Вместо этого добавьте `else:

$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;
...