if / else检查返回false

时间:2014-07-17 23:13:36

标签: javascript php if-statement

有时您需要检查是否设置了某些内容,然后执行操作。有时会有很多这些检查,我讨厌导致的缩进。

为了最大限度地减少嵌套,我总是检查相反的return,然后继续使用相同的缩进。

例如,请说以下

if (user.isOwner)
{
    // Do some operation
    // Set a value $accepted to true or false

    if ($accepted)
    {
        // Do more operation
        // And so on
    }
}

相反,我将上面的代码编写为

if ( ! user.isOwner) return;

// Do some operation
// Set a value $accepted to true or false

if ( ! $accepted) return;

// Do more operation
// And so on

这会导致任何问题吗?调用上面的函数不会返回任何结果(即我调用为doThisForMe())。我的编码在这里用PHP和Javascript完成。我不知道这个问题是否依赖于语言。

4 个答案:

答案 0 :(得分:0)

只要你不想退货,这对我来说就好了。 否则你可以使用one-liner if。

return (<statemen>) ? <handles true> : <handles false>;

我不确定它是否也在PHP中运行,但肯定会使用javascript。

答案 1 :(得分:0)

当您尝试最小化脚本文件中的缩进时,这通常非常有用。它通常没有问题。

唯一可能出现的问题是,如果要在函数中添加else块。使用前一种语法,它只是简单地添加else到它的末尾。如果您使用的是return,那就不可能了,您必须将其转换为以前的语法。

这适用于PHP和JavaScript。它也适用于大多数具有类似语法的语言。

答案 2 :(得分:0)

在Javascript的情况下,这应该没有任何伤害,因为javascript函数以任何方式返回 undefined 。 (你写 return; 或不是)

对于PHP我不太确定,但我现在无法想象任何问题。

但是我认为这是不好的做法,因为缩进有助于了解发生了什么。 如果你在一个函数中有很多这些检查,也许你应该考虑创建更多,更小的函数而不是一个大函数,因为这也有助于阅读你的代码。

答案 3 :(得分:0)

if-elseif-else语句一发现一个为真,就停止进行比较。每次比较都会if-if-if。第一种是更有效率。

在您的情况下,或者在控制将离开方法(例外)的情况下,执行多个if语句和执行if-elseif-else语句之间没有区别。

但是,无论如何使用if-elseif-else是最佳做法。假设您更改了代码,使得您不会在每个if块中执行返回操作。然后,为了保持高效,您还必须更改为if-elseif-else成语。从头开始if-elseif-else可以保存您以后的修改,并且对于阅读代码的人来说更清晰。

现在编写程序并不是一项大任务,而代码的可维护性是主要要求。由于chaning世界和要求,我们需要不时更新或更改代码。因此,非常需要缩进代码以获得更好的可读性