当条件不满足时不返回任何内容

时间:2012-05-15 17:11:02

标签: wordpress function return

例如,我在Wordpress中注意到,在执行操作之前,有多个if语句返回空白:

function save_book_meta($post_id) {
    $slug = 'book';
    if($slug != $_POST['post_type']) {
        return;
    }
    if(!current_user_can('edit_post', $post_id)) {
        return;
    }
    // perform actions here
}

在下面的示例中,将它写成这样并编写它之间的区别是什么,而不是返回任何内容进行检查,然后执行操作:

function save_book_meta($post_id) {
    $slug = 'book';
    if($slug == $_POST['post_type'] && current_user_can('edit_post', $post_id)) {
        // perform actions here
    }
}

我的问题是:

  1. 空白回归的目的是什么?
  2. 这是一个很好的做法,有多个返回语句(即使只会执行一个)或理想情况下返回应该在函数的末尾吗?

2 个答案:

答案 0 :(得分:0)

1)它只是让代码更清洁一点。想象一下,如果你的例子中有10个而不是2个 2)是的,回报通常比以后使用if语句更清晰。

答案 1 :(得分:0)

  1. 停止此功能继续。
  2. 在这种情况下分离两个if条件的一个好处是防止不必要的处理(命中数据库并执行业务逻辑以确定用户的权限级别)。如果您可以从一开始就尽可能少地确定FALSE结果,那么继续执行更复杂的测试是没有意义的。
  3. 一般情况下, I 可能会加入2个简单的条件。但在这种情况下,我认为这是合适的。