PHP查询字符串变量参数

时间:2012-01-07 20:18:57

标签: php

我注意到很多PHP函数以任何顺序接受这样的变量。

<?php function_name('var8=hi, var2=hello'); ?>

编辑:

像提到的查尔斯一样,字符串实际上看起来像这样:

<?php function_name('var8=hi&var2=hello'); ?>

如果我想写一个这样的函数,我该怎么做?

3 个答案:

答案 0 :(得分:1)

我很困惑,为什么你的参数在引号中。

在php中创建函数时,您可以通过设置变量来设置默认值,如下所示:

<?php
function foo($bar = 'pie')
{
return $bar;
}
echo foo(); // will echo pie
echo foo('bar'); //will output bar
?> 

答案 1 :(得分:1)

您只是将该函数传递给字符串。为了使它具有任何意义,它必须解析字符串以分割键/值对。我并不是说它是最好的方法,但如果你想这样做,你应该使用parse_str()

请注意,这不是而不是 PHP的语言功能,但我只是提供了一种方法来处理您所显示的内容。

答案 2 :(得分:1)

这不是一个常见的习惯用法,但如果有一个强大的用例并使你的API更有用,为什么不呢。如果没有使用parse_str和URL编码格式,你当然可以为它编写一个迷你解析器 非常简单也会滥用parse_ini_string

function function_name($paramstr) {
    extract(parse_ini_string(strtr($paramstr, ",", "\n")));

你可能仍然想要默认值;然后还需要array_merge等。

(之所以没有广泛使用的原因是你最终只使用了字符串标量,它也禁止了值中的分隔符。并且通常不会有任意数量的参数真正有用。)