我正在寻找像PERL
这样的简短语法<?php
# instead of this ( PHP )
$f = returnArray();
echo $f[2];
unset($f);
# just do this ( PERL short code )
echo (returnArray())[2];
# or this ( PERL short code )
echo returnArray()->[2];
function returnArray()
{
return array(0=>'x', 1=>'y', 2=>'This will get printed');
}
?>
第一个回显将打印这将打印
第二个和第三个是语法错误
在PHP中有一种方法可以做这样的事情吗?
答案 0 :(得分:0)
不,PHP还不支持这个。 (据戈登说,它已经在后备箱了。)
但你可以写一个小函数:
function arrayOffset($array, $index) {
return $array[$index];
}
arrayOffset(func(), 2);
PS:实际上我在prephp中有这个功能的实现,但我不认为它会被使用。这可能是错误的,我还没有开发项目很长一段时间(虽然我希望恢复)。 (Test,Implementation)
答案 1 :(得分:0)
PHP在其当前版本中不支持此功能。对于下一个即将发布的php,计划包含此功能。
请参阅php.net wiki(此rfc及相关内容)或the blog post of the php 5.3 release manager。
现在有一件事是:
<?php
function x() { return array(1,2,3); }
list($one, $two, ) = x();
等等。也许其他人会发布更多的例子,但一般的工作环境看起来很不错..我不知道。
答案 2 :(得分:0)
这在PHP 5.4中得到支持,而在PHP 5.3中则不受支持。