wp_parse_args(字符串|数组|对象 $个参数,阵列 $默认值 = 数组() ):阵列

将用户定义的参数合并到默认数组中。

说明

这个函数在整个WordPress中使用,允许字符串或数组合并到另一个数组中。

参数

$个参数一串|阵列|对象必修的
要与$defaults合并的值。
$默认值阵列可选择的
用作默认值的数组。

违约:数组()

返回

阵列将用户定义的值与默认值合并。

更多信息

wp_parse_args是一个通用实用程序,用于将参数数组和默认值数组合并在一起。它还可以被赋予一个URL查询类型字符串,该字符串将被转换为数组(即。“id=5&status=草稿”).

它在整个WordPress中使用,以避免担心默认值和输入的逻辑,并为传递参数生成稳定的模式。功能如查询_帖子,wp_列表_注释获取条件(_T)是简化功能的常见示例wp_parse_args.

具有$个参数基于设置可以无限扩展可能传递给它们的值的数量,避免了超长函数调用带来的麻烦,因为要跟踪的参数太多,其中许多参数的唯一功能是在很少的情况下覆盖通常良好的默认值。

来源

函数wp_parse_args($args,$defaults=array()){if(is_object($args)){$parsed_args=获取对象变量($args);}elseif(is_array($args)){$parsed_args=&$args;}其他{wp_parse_str($args,$parsed_args);}if(is_array($defaults)&&$default){返回array_merge($defaults,$parsed_args);}返回$parsed_args;}

变更日志

版本说明
2.3.0$个参数现在也可以是一个对象。
2.2.0介绍。

用户贡献的笔记

  1. 跳到备注5内容

    基本用法:

    函数wpdocs_my_function($args){$defaults=数组(“name”=>“Mr.nobody”,'favorite_color'=>'unknown',“年龄”=>“未知”,);$args=wp_parse_args($args,$defaults);print_r($args);}$args=数组(“age”=>36);wpdocs_my_function($args);//输出:////阵列(//“name”=>“Mr.nobody”,//'favorite_color'=>'unknown',//“年龄”=>36,// )
  2. 跳到注释7内容

    下面是一个使用wp_parse_args系统管理其单个$个参数参数,可以给它任何你想要的值。
    在这种情况下$个参数存储详细的显示覆盖,这是许多WordPress函数中的一种模式。

    /***定义一个使用$args和wp_parse_args()的新函数*/函数wpdocs_explain_parse_args($args){$defaults=数组(“text”=>“wp_parse_args()将$args合并为$defaults”,“之前”=>“<p>”,'之后'=>“</p>\n”,“echo”=>真);//将传入的$args解析为数组,并将其与$defaults合并$args=wp_parse_args($args,$defaults);$output=$args[“之前”]$参数['text']$args['after'];if(!$echo)返回$output;echo$output;}/***使用默认值(无$args)运行新函数*这将打印出:*<p>wp_parse_args()将$args合并为$defaults</p>*/wpdocs_explain_parse_args();/***使用数组覆盖的某些选项运行函数*这将用修改后的文本和前面的参数来响应输出:*<p class='specialclass'>更好的解释</p>*/wpdocs_explain_parse_args(数组('text'=>“更好的解释”,'之前'=>“<p class='specialclass'>”) );/***我们还可以传入URL样式的字符串查询,它将被转换*这会将$args['echo']设置为1,并将$args['text']设置为0*/wpdocs_explain_parse_args('echo=1&text=0');
  3. 跳到注释8内容

    如果您希望递归合并两个数组,这是函数:

    if(!function_exists('wpdocs_recursive_parse_args')){函数wpdocs_recursive_parse_args($args,$defaults){$new_args=(数组)$defaults;foreach($args作为$key=>$value){if(is_array($value)&&isset($new_args[$key])){$new_args[$key]=wpdocs_recursive_parse_args($value,$new_aargs[$key]);}其他{$new_args[$key]=$value;}}返回$new_args;}}

    测试用例:

    $默认值=[“x1”=>“level1”,“x2”=>[‘a1’=>‘级别1’,‘a2’=>‘级别1’,],“x4”=>[“b1”=>[“c1”=>“level1”,],“b2”=>“level1”,],“x3”=>“level1”,];$args=[“x3”=>“level2”,“x2”=>[“a2”=>“level2”,],“x4”=>[“b1”=>[“c1”=>“level2”,“c2”=>“leve2”,“c3”=>[“d1”=>[“e1”=>“确定”,],],],],];print_r(awps_recursive_parse_args($args,$defaults);/***结果*//*[“x1”=>“level1”,“x2”=>[“a1”=>“level1”,“a2”=>“level2”,],“x4”=>[“b1”=>[“c1”=>“level2”,“c2”=>“leve2”,“c3”=>[“d1”=>[“e1”=>“确定”,],],],“b2”=>“level1”,],“x3”=>“level2”,];*/

你必须登录在能够发表注释或反馈之前。