这是一个我经常遇到的问题,我从来没有找到/想出最佳实践情况.例外可能是要走的路,但是我正在使用的应用程序没有使用它们,所以我试图坚持使用当前使用的方法.
如果需要检查3,4,5或更多不同的条件并且设置了错误消息或处理继续,则在语句,返回,消息等中布置if的最佳方法是什么.最好的做法是在代码开头实际进行所有错误检查吗?
这是一个真实世界类型条件的例子.
function process($objectId,$userId,$newData)
{
$error = '';
if(($object = $this->getObject($objectId)) && $object->userOwnsObject($userId))
{
if($this->isValid($newData))
{
if($object->isWriteable())
{
if($object->write($newData))
{
// No error. Success!
}
else
{
$error = 'Unable to write object';
}
}
else
{
$error = 'Object not writeable';
}
}
else
{
$error = 'Data invalid';
}
}
else
{
$error = 'Object invalid';
}
return $error;
}
Run Code Online (Sandbox Code Playgroud)
要么
function process($objectId,$userId,$newData)
{
$error = '';
if((!$object = $this->getObject($objectId)) && !$object->userOwnsObject($userId))
{
$error = 'Object invalid'; …Run Code Online (Sandbox Code Playgroud)