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;
}
在我看来,他们会做同样的事情,而我无法想出为什么要使用其中一个的原因。这只是偏好,还是我错过了什么?我是初学者,所以任何输入都会非常感激。
答案 0 :(得分:6)
没有区别,大多数情况下你可以随心所欲。
请注意,您无需将boolean values与true
和false
进行比较,因为他们已经对这种情况感到满意。例如
if ($send) {
echo "Mail Sent";
return true;
} else {
echo "Error Sending Email: ". $send->message;
return false;
}
您也可以像这样返回$send
值
if ($send) {
echo "Mail Sent";
} else {
echo "Error Sending Email: ". $send->message;
}
return $send;
当您选择使用哪种订单时,我建议您考虑哪一种更容易阅读和理解。
P.S。 PHP中的一个重要主题是Type Juggling PHP自动将不同类型转换为所需的任何类型。只需阅读本文,并在进行不同的条件检查时记住。有时这可能很棘手。
p.p.s。有一本好书我Martin Fowler - Refactoring: Improving the Design of Existing Code它涵盖了这样的问题 - 如何组织代码,什么是进行条件检查的最佳方式等等。嗯,这不是关于这个主题的唯一一本书,但这是第一本一个我想到的。这可能是有争议的,并非所有人都遵循他的建议,但这是你可能想知道的事情:)
答案 1 :(得分:5)
我更喜欢先进行错误验证,这样我就不必将错误验证后的所有内容都包装到自己独立的条件中。
请考虑以下事项:
if(!$send) {
echo "Error Sending Email: ". $send->message;
return false;
}
echo "Mail Sent";
return true;
对我而言,这更容易阅读,并且在处理多个验证标准时变得更容易管理。只需在开头抛出所有验证标准,你就是黄金(假设当你有错误时退出该函数)。一旦它通过了每次验证检查,它就会一直突然出现。
然而,主要的消息是,没有“正确”的答案。这完全是一个偏好问题。