2011-01-31 90 views
0

一个简单的问题PHP if语句的基本问题

这是什么之间的差异:

if($posted_quantity <= $current_quantity) { 
    if($posted_quantity >= $min_allowed_quantity && $posted_quantity <= $max_allowed_quantity){ 
     //do something 
    } 
} 

这:

if($posted_quantity <= $current_quantity && ($posted_quantity >= $min_allowed_quantity && $posted_quantity <= $max_allowed_quantity)){ 
    //do something 
} 

,如果它是可能的,什么是那些之间的区别二,哪一个更好用,多谢多谢

编辑:我目前正在进行测试,并且我似乎没有发现使用这两种方法的任何问题,并且我没有任何其他的方法,我只是想在完成所有条件时做一些事情(限制用户的数量) ,我只是好奇哪一个是更好的方法,哪一个更快,可读,像这样的事情

+2

你没有在你身边的PHP试试吧?我的情况你真的没有,你可以用http://codepad.org/ – 2011-01-31 09:59:16

+0

自己测试这样简单的事情,它似乎正在对我目前的测试,我只是好奇 – littlechad 2011-01-31 10:03:38

回答

1

我你没有任何elseelseif子句在那里,它是完全一样的。虽然我认为你原来的状态已经是错误的:

$posted_quantity <= $min_allowed_quantity && $posted_quantity >= $max_allowed_quantity 

这是真实的,如果$posted_quanitiy的的最小..最大范围。

0

这是一样的。第一个优点是能够为第二个条件设置else子句,并且可读性强。

0

他们以同样的方式做同样的事情。在这两种情况下,如果第一个条件返回false,则不评估第二个条件。

1

确实有可能。

从功能上来说,它们是等价的,所以区别在于可读性,所以请选择您认为最容易理解的那一个。

个人而言,我会做沿着

if ($posted_quantity <= $current_quantity && 
    $posted_quantity <= $min_allowed_quantity && 
    $posted_quantity >= $max_allowed_quantity) { 
    //do something 
} 

线的东西,以使其更具可读性。

0

如果你没有任何'其他'条款,你的第一个if是无用的。 Imo,第二个也许快一点,因为php不需要解析2'if'。但我不确定。

0

第一个允许您为每个评估语句分开其他子句。如果第一个问题是错误的,那么你可能希望发生不同的事情,如果第二个错误是错误的。

0

两者都是一样的。 我这么认为它是你的编程技巧哪一个使用取决于你(对你的打击感和其他容易理解的代码)

0

ofc。一切皆有可能! ;)

if($posted_quantity <= $current_quantity && ($posted_quantity <= $min_allowed_quantity && $posted_quantity >= $max_allowed_quantity)){ 
    //do something 
} 

它是相同的,如果你总是需要检查所有的! 但是,如果你需要检查是这样的:

if($posted_quantity <= $current_quantity){ 
    if($posted_quantity <= $min_allowed_quantity){ 
     //do something 
    } 
    elseif($posted_quantity >= $max_allowed_quantity){ 
     //do something else 
    } 
} 

那么它会去分开!:)

1

它似乎如果条件有效的两种风格并没有任何区别更好的一个条件语句

希望它有助于使用它!