PHP乘法怪异的行为

时间:2011-11-10 01:55:10

标签: php if-statement operators multiplication

我不知道我是否遭受过大脑或视力损害,但我无法理解此代码的行为:

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

我希望输出为1 * 0 = 0,但实际上它是1 * 0 = 1.

1 个答案:

答案 0 :(得分:3)

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