【发布时间】:2016-05-04 17:04:29
【问题描述】:
if($send != true)
{
echo "Error Sending Email: ". $send->message;
return false;
}
else
{
echo "Mail Sent";
return true;
}
我现在正在学习 PHP,并且正在努力理解为什么这段代码是这样设置的。上面的代码和这个有什么区别吗:
if($send == true)
{
echo "Mail Sent";
return true;
}
else
{
echo "Error Sending Email: ". $send->message;
return false;
}
在我看来,他们会做同样的事情,我想不出任何理由为什么要使用一个而不是另一个。这只是偏好,还是我错过了什么?我是一个初学者,所以任何输入将不胜感激。
【问题讨论】:
-
我喜欢较少的否定,所以会选择第二个。
-
没有区别;它归结为相同的代码。使用对您来说最易读的那个。
-
关于测试真理的哲学有一些话要说,其他一切都走虚假的道路,而不是测试虚假和其他一切都走真实的道路。在许多情况下,您需要前者而不是后者。这里的假设是“其他一切”可能包括本身不评估为“假”的案例,您很可能不希望这些案例遵循真实路径。
-
我更喜欢一开始就进行错误验证,再加上优雅地处理异常。所以像
if (!$condition) { throw new \Exception('You done screwed up!') }这样的东西,然后从那一点继续,没有更多的条件。