我注意到很多PHP函数以任何顺序接受这样的变量。
<?php function_name('var8=hi, var2=hello'); ?>
编辑:
像提到的查尔斯一样,字符串实际上看起来像这样:
<?php function_name('var8=hi&var2=hello'); ?>
如果我想写一个这样的函数,我该怎么做?
答案 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
等。
(之所以没有广泛使用的原因是你最终只使用了字符串标量,它也禁止了值中的分隔符。并且通常不会有任意数量的参数真正有用。)