从函数调用中解析返回的数组

时间:2010-08-25 10:22:08

标签: php

我正在寻找像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中有一种方法可以做这样的事情吗?

3 个答案:

答案 0 :(得分:0)

不,PHP还不支持这个。 (据戈登说,它已经在后备箱了。)

但你可以写一个小函数:

function arrayOffset($array, $index) {
    return $array[$index];
}

arrayOffset(func(), 2);

PS:实际上我在prephp中有这个功能的实现,但我不认为它会被使用。这可能是错误的,我还没有开发项目很长一段时间(虽然我希望恢复)。 (TestImplementation

答案 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中则不受支持。