0

例如,我在 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. 拥有多个 return 语句(即使只执行一个)是一种好习惯,还是理想情况下 return 应该在函数的末尾?
4

2 回答 2

0

1)它只是让代码更干净一些。想象一下,如果您有 10 个而不是示例中的两个。
2) 是的,返回通常比稍后使用 if 语句更干净。

于 2012-05-15T17:15:44.460 回答
0
  1. 停止该功能继续。
  2. 在这种情况下分离这两个条件的一个好处if是防止不必要的处理(访问数据库并执行业务逻辑以确定用户的权限级别)。如果您可以FALSE从一开始就以尽可能少的努力确定结果,那么继续执行更复杂的测试是没有意义的。

一般来说,虽然可能会加入 2 个简单的条件。但在这种情况下,我认为这是合适的。

于 2012-05-15T17:16:44.400 回答