这是一种正确的说法:如果是这种情况,什么都不做?
if ( ($hostNameInfo == $hostNameInput) && ($hostAddressInfo == $hostAddressInput) )
{
return;
}
更新 我不在功能里面。 :( 所以回报只是胡说八道。
这是更多代码:
//if the input fields are equal to database values, no need to update and waste resources,hence, do nothing:
if ( ($hostNameInfo == $hostNameInput) && ($hostAddressInfo == $hostAddressInput) )
{
//do nothing
}
//If, however, (they are NOT equal and) input fields are not empty:
elseif (!empty($hostNameInput) && (!empty($hostAddressInput)))
{
//do something.
}
提前致谢, MEM
答案 0 :(得分:14)
也许你应该做相反的事情,如果你的病情没有得到证实就做点什么
if($hostNameInfo != $hostNameInput || $hostAddressInfo != $hostAddressInput) {
// do something
}
答案 1 :(得分:5)
无所事事,你根本无法输入:
function relax() {
;
}
if (($hostNameInfo == $hostNameInput) && ($hostAddressInfo == $hostAddressInput)) {
relax();
}
答案 2 :(得分:1)
我假设你在一个函数中,在这种情况下它会按照你的期望进行,尽管函数中的多个(显然我错了。)return
语句可以导致混淆和缺乏可读性。
相反,我更喜欢让所有条件块(我对if
的{{1}}块之间的代码的描述)包含相关代码,即以这种方式编写条件检查当需要额外处理(子流)时,总条件评估为{...}
:
true
此外,您可以提取条件语句以提高 的可读性和控制流的简单性:
if ($hostNameInfo != $hostNameInput || $hostAddressInfo != $hostAddressInput) {
// do stuff, else skip
}
更新(基于更新的问题)。请考虑一下:
$hostInfoEqualsInput = ($hostNameInfo == $hostNameInput && $hostAddressInfo == $hostAddressInput);
if (!$hostInfoEqualsInput) {
...
}
<强> ERGO 强>
通过编写满足您想要的条件来最小化分支率并避免空块,而不是所有要忽略的异常(主观)。
答案 3 :(得分:1)
你在这里谈论最佳实践..
最佳实践之一是例程应该single exit point,尽管它是widely discussed并且取决于开发人员/风格。
更新:
新答案,因为问题已经改变:
如果代码只能在某些情况下运行,则看不出任何添加额外检查的理由。为了使代码更具可读性,您应该坚持使用易于维护的任何内容,例如:(或类似的东西):
// Do something only if required
if (($hostNameInfo != $hostNameInput) || ($hostAddressInfo != $hostAddressInput)) &&
!empty($hostNameInput) && !empty($hostAddressInput))
{
echo 'place some code here';
}
答案 4 :(得分:-1)
另一种可能性是抛出一个新的异常,稍后您可以在应用程序中捕获该异常。
UPDATE:不在函数内部,这可能是一个坏主意。