将参数传递给方法时,重命名参数是一种好习惯吗?

时间:2019-03-09 16:40:34

标签: php function parameter-passing

我最近从开发人员那里得到了这段代码,发现它非常令人困惑。他如何传递参数,然后在方法中将其重命名的方式使代码阅读起来更加复杂。我花了很多时间只是想弄清楚什么是$ block_options以及它的来源。在第一种方法中,他定义了变量 $ settings ,然后将其传递给 _start_block 方法,该方法仍称为 $ settings 。但是随后他将其传递给下一个方法 _ajax_param ,然后变量名更改为 $ block ,然后将其存储在 $ block_options 中。因此 $ settings 变为 $ block_options

通过这样的方法传递参数时,重命名参数是一种好习惯吗?

原始代码更复杂,并且在方法内部包含更多代码,这使其更加混乱。这是代码的简化版本:

protected function render() {
    $settings = $this->get_settings_for_display();    
    $data = $this->_fetch_query_data( $settings );

    $output  = '';
    $output .= $this->_start_block( $settings, $data );

    echo $output;
}


protected function _start_block( $settings, $data = null ) {

    $ajax_param      = '';

    if ( ! empty( $data ) && is_object( $data ) ) {
        $ajax_param = $this->_ajax_param( $settings, $data );
    }

    $output = '';

    $output .= '<div id="' . esc_attr( $settings['block_id'] ) . '" class="content-section section-recent-news tab-post" ' . esc_attr( $ajax_param ) . '>';
    $output .= '<div class="recent-news-inner">';

    return $output;
}

protected function _ajax_param( $block, $data_query ) {

    //check
    if ( empty( $block ) || empty( $block['block_id'] ) ) {
        return false;
    }

    $param                    = array();
    $block_options            = $block;
    $param['data-block_id']   = $block['block_id'];

    //post per page
    if ( ! empty( $block_options['posts_per_page'] ) ) {
        $param['data-posts_per_page'] = $block_options['posts_per_page'];
    }

    return $param
}

0 个答案:

没有答案