模拟wordpress函数parse_args实现

该文章由 leevare 发布于 ,归类于 PHP

wordpress函数wp_parse_args主要是用来合并传入参数和数组默认值。例如默认值为

$defaults = array(
    'current_page' => 0,
    'total_count' => 0,
    'before' => '',
    'after' => '',
    'page_url' => ''
);

当传入外部数组时

$args = array(
    'current_page' => $page,
    'total_count' => $total,
    'page_url' => $page_url
)

此时,合并后的数组应该为

array(
    'current_page' => $page,
    'total_count' => $total,
    'before' => '',
    'after' => '',
    'page_url' => $page_url
);

这有点类似于es6中的assign,或者是jQuery中的$.extend()。可以用如下的方式来实现上述功能。

function parse_args($args, $defaults = '') {
    if (is_object($args))
        $r = get_object_vars($args);
    elseif (is_array($args))
        $r =& $args;
    else
        $this->parse_str($args, $r);
    if (is_array($defaults))
        return array_merge($defaults, $r);
    return $r;
}

function parse_str($string, &$array) {
    parse_str($string, $array);
}

当然,传入查询字符串时,其也会将其解析为数组

total_count=1000&current_page=5

数组

array( 'total_count' => 1000, 'current_page' => 5 )

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

说点什么

avatar
300
  Subscribe  
提醒