2

我不知道你怎么样,但我不太喜欢用 PHP 构造数组的方式。我有这种感觉,我array过于频繁地使用关键字方式,并且鉴于地图的有用性,array($k => $v)或者例如array($k1=>array($k2=>$v))太长了。(而且,最近学习了JS的做法,现在真的很羡慕)

我能想到的最好的解决方法是:

function a() { // array
  return func_get_args();
}

function h() { // hash
  $array=array();
  for($i=0; $i<func_num_args()-1; $i+=2) {
    $array[func_get_arg($i)]=func_get_arg($i+1);
  }
  return $array;
}

...但他们不允许使用=>运算符。

还有其他想法吗?

4

3 回答 3

8

PHP 5.4开始,使用和支持数组的简写语法。你的例子:[]

array($k => $v)
array($k1=>array($k2=>$v))

现在可以写成:

[$k => $v]
[$k1 => [$k2 => $v]]
于 2012-04-24T12:23:38.280 回答
3

PHP 中没有用于声明数组的简写语法。这是我希望看到的功能,但我非常怀疑它会发生。

PHP 开发人员和 PHP 社区对此进行了很多讨论,但从未实现过。如果您想了解讨论是如何展开的,这是一个很好的起点,可以在 PHP wiki 上找到:http ://wiki.php.net/rfc/shortsyntaxforarrays

现在,您将不得不忍受输入一些额外的字符。

于 2009-09-29T23:58:05.437 回答
0

使用 Texter 或任何带有模板/宏的不错的编辑器。例如:

[]+Tab ---> array({cursor})

如果您真的很着迷,请创建一个 json_decode 宏以通过以下方式运行选择:

<?php var_export(json_decode(stream_get_contents(STDIN), true));

只是不要把 JSON 放在你的 PHP 代码中,因为你宁愿看 JSON ......

于 2009-09-30T05:42:58.293 回答