考虑:
if (a = 10)
{
/* do something */
}
我感兴趣的是,这是否是一件好事,为什么我必须经常面对它。提前谢谢。
请考虑一个更复杂的例子。你更喜欢什么?为什么?
function getSomeData()
{
return rand(0, 5);
}
首先:
if ($result = getSomeData())
{
print($result)
}
或第二:
$result = getSomeData();
if ($result)
{
print($result);
}
答案 0 :(得分:2)
在这个特定的例子中,“if”是不必要的,效果的返回总是10。
会更加有趣。
if(a = b)
{
// do stuff
}
在这种情况下,我更喜欢用另一对()来表达它,如:
if((a = b))
{
// do something
}
在这里,你向另一个程序员展示你确切知道你做了什么
一个好的规则:如果你想要超过10秒来理解一个条件,也许有另一种表达方式
答案 1 :(得分:1)
这绝对是可怕的,在您检查条件的情况下,您不会尝试进行任务。我甚至不确定这是否会起作用,if语句的结果是什么。
要么这样做:
if ( a == 10 ){ /* do stuff */ }
或者这样做:
a = 10;
if ( /* condition here */ ){ /* do stuff */ }
我相信你错了单个=为双==。
编辑:
要响应更复杂的情况,必须将boolean放在if语句中(取决于编程语言,这将返回错误)。将其他任何内容放在不返回布尔值的if语句中实际上是一件坏事。
答案 2 :(得分:1)
没有什么大魔力!
此处,分配返回的值是指定的值。
在您的情况下,它是(a = 10)
=> 10 =>非零=>因此“真实”!
所以,它总是返回真实