2010-08-25 83 views
0

我喜歡在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中有這樣的事情嗎?

+2

[PHP:獲得數組元素]的可能重複(http://stackoverflow.com/questions/3484832/php-get-array-element) – VolkerK 2010-08-25 10:24:22

+1

[數組解除引用將很快來到你身邊的PHP](http: //schlueters.de/blog/archives/138-Features-in-PHP-trunk-Array-dereferencing.html) – Gordon 2010-08-25 10:27:06

回答

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(); 

等。也許其他人會發布更多的例子,但一般workarround看起來不錯。我不知道。

0

不,PHP不支持。 (據戈登它已經在後備箱裏。)

但你可以寫一個小功能:

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

arrayOffset(func(), 2); 

PS:其實我在prephp這一功能的實現,但我不認爲它應該被使用。這可能是越野車,我還沒有開發該項目很長一段時間(雖然我希望恢復)。 (Test,Implementation

+0

您可能想爲此添加一個「尚未」,因爲它實際上位於中繼線中,但尚未提供在任何版本 – Gordon 2010-08-25 10:29:15

+0

編輯我的答案。很高興在這裏,它是在路上。這個特性是否可以在5.4版本中使用,或者它是否已經在5.3.4(或者其他一些5.3版本)中使用? – NikiC 2010-08-25 10:35:30

+1

我不知道它何時可用。有關詳細信息,請參閱問題下方的鏈接。 – Gordon 2010-08-25 11:25:07

0

這在PHP 5.4中支持,而不是在PHP 5.3中支持。

相關問題