很抱歉没有使用正确的术语,但考虑到我的PHP级别是多么的基础,也许你不会介意这么多。
我正在使用的插件的一个函数允许参数,以便选择性地回显内容:
<?php phpquote(argumentstring); ?>
参数字符串的一个示例是例如auto_refresh=0&标签=a、b、c
我一直认为可以使用数组来构建"字符串",例如之类的东西
<?php $arg=array( 'auto_refresh' => '0', 'tags' => 'a,b,c' );
phpquote($arg); ?>
因此,我认为我可以从另一个领域引入其他内容,例如
<?php
$fieldcontent = get_field("field_content");
$arg=array( 'auto_refresh' => '0', 'tags' => $fieldcontent );
phpquote($arg); ?>
然而,这似乎不起作用,所以我的两个问题是:
- 是否可以使用数组构建这样的参数字符串?还是这取决于插件
- 如果是这样,是否可以像上面的例子一样从其他地方引入内容
提前谢谢。我很感激这似乎是一个术语不正确的基本问题(对不起!),所以希望它对专家来说有意义。
您可以使用implode()
和array_map()
PHP函数使数组成为参数字符串:
<?php
$args = array( 'auto_refresh' => '0', 'tags' => 'a,b,c' );
function rb_map( $a, $b ) {
return $a . '=' . $b;
}
$arg_string = implode('&', array_map( 'rb_map', array_keys($args), $args ) );
//var_dump($arg_string);
?>
循环遍历数组并使用implode()
函数将块粘合在一起。手动
或者你也可以这样做:
$argumentString= "";
foreach($arg as $k=>$v){
$argumentString.= $k.'='.$v.'&';
}
$argumentString = substr($argumentString,0,-1); //removes the last &
<?php
$arg=array( 'auto_refresh' => '0', 'tags' => 'a,b,c' );
echo urldecode(http_build_query($arg)); //output: auto_refresh=0&tags=a,b,c
?>
这是你想要的吗?
查看http_build_query以获取更多信息
是否可以使用数组作为函数的参数取决于在函数本身中如何定义/使用数组。
举个例子:
function test($var) {
print_r($var);
}
$bla = array(1 => "test me", 2 => "balbla");
test($bla);
(您可以在此处玩)
您可以传递一个字符串或一个数组作为test
函数的参数,因为print_r
能够处理这两者。例如,如果函数有echo
,并且您将一个数组作为参数传递给函数,那么它就会失败。