条件分配。这是一个好习惯吗?

时间:2012-02-12 11:54:52

标签: php coding-style

考虑:

if (a = 10)
{
   /* do something */
}

我感兴趣的是,这是否是一件好事,为什么我必须经常面对它。提前谢谢。

请考虑一个更复杂的例子。你更喜欢什么?为什么?

function getSomeData()
{
    return rand(0, 5);
}

首先:

if ($result = getSomeData())
{
    print($result)
}

或第二:

$result = getSomeData();
if ($result)
{
    print($result);
}

3 个答案:

答案 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 =>非零=>因此“真实”!

所以,它总是返回真实