为if语句提供条件时出错

时间:2013-12-15 22:56:03

标签: php

$h = 30;
$flipSum = $h - 1;

if (5 < print $flipSum) {
echo "Yes";
}
else {
echo "No";
}

此文件的输出为“29No”。错误在哪里?我希望输出为“是”。

此外,当我删除$ h和$ flipSum并使用下面的一个变量替换它时,我遇到错误。我如何处理包围?

$h = 30;

if (1 < print $h - 1) {
echo "s";
}
else {
echo "Sa";
}

这给出了相同的输出“29No”。

谢谢你, 西

3 个答案:

答案 0 :(得分:3)

条件的开头陈述应为:

if (5 < $flipSum) {

您想要的是评估5 < $flipSum,其中$flipSum可能是某个数字。你实际做的是评估5 < print $flipSum - 其中print $flipSum的返回值为always 1。因此,您将No视为返回值。

更多信息:返回值为29No的原因是 - 在5 < print $flipSum - 两个事情正在发生(按顺序):

  1. 正在打印$flipSum的值 - 因此29
  2. 评估整个条件(到false)并输入相应的块 - 因此No

答案 1 :(得分:1)

PHP中的

print语句总是返回1.这就是为什么你得到No作为输出

有关打印的更多信息: http://www.php.net/print

答案 2 :(得分:1)

请勿在{{1​​}}逻辑中使用print构造,因为它始终返回if

1