#php #if-statement #operators #multiplication
#php #if-statement #операторы #умножение
Вопрос:
Я не знаю, пострадал ли я от какого-либо повреждения мозга или зрения, но я не могу понять поведение этого кода:
$po=1;
$po2=0;
echo $po.'*'.$po2.'=';
if($po*$po2) $po=1;
echo $po;
Я бы ожидал, что результат будет равен 1 * 0 = 0, но на самом деле это 1 * 0 = 1.
Ответ №1:
$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;