PHP中类似Ruby的数组参数实现

Gui*_*rmo 1 php ruby json language-comparisons

我在PHP中编程很好,有时我碰巧需要一种方法来将这些"哈希参数"实现到我的PHP函数中(比如说,一个HTML选择帮助器)

draw_select :name => :id, :onclick => 'alert(this.value)'
Run Code Online (Sandbox Code Playgroud)

PHP中的问题是我必须定义一个参数顺序来实现许多可能的属性.

我一直在考虑定义1字符串参数并使用json_decode(),所以我可以传递这样的参数:

draw_select("'name': 'id', 'onclick': 'alert(this.value)' ")
Run Code Online (Sandbox Code Playgroud)

定义如下:

function draw_select($string) {
// use json_decode here and pass them as variables
}
Run Code Online (Sandbox Code Playgroud)

你知道一种更聪明的方法吗?或者你认为在PHP中对此进行操作确实有任何意义吗?

编辑添加:我正在寻找一种"替代"替代方案,只需将一个signle数组作为参数传递,如函数(array(...))

Fra*_*mer 5

为什么不通过数组呢?

draw_select(array(
  'name'=> 'id', 
  'onclick'=> 'alert(this.value)'
));
Run Code Online (Sandbox Code Playgroud)

  • 这种传递数组的方法正是你想要的Ruby方法所做的,如果你看一下draw_select的实现,它可能就像:"def draw_select(opts = {})",所以它只需要一个哈希.相当于传递数组的PHP就是这样! - 相当于!我不知道你怎么能得到更多的等价物. (3认同)