2014-10-08 55 views
2

這是我以前沒見過的東西,但它似乎受到支持,並且它確實可行,在提供函數被調用後直接引用返回的數組鍵。但是...這是一個好習慣嗎?這將在未來得到支持嗎?這甚至有一個名字嗎?引用返回數組值的良好做法

<?php 

function example_function() { 
    $return = array('part_1', 'part_2'); 
    return $return; 
} 

$var = example_function()[0]; 

echo $var; 

要得到相同的結果,我通常會做以下

$var = example_function(); 
$var = $var[0]; 

回答

3

這就是所謂的Array Dereferencing。它一直是available since PHP 5.4。儘管有人會說可以降低可讀性,但可以使用。

+1

@MikeG每次如果你不使用它,你可能最終http://stackoverflow.com/a/10470579/3882178 – loveNoHate 2014-10-08 13:44:38

+1

就個人而言,我發現它改善盡管我發現在解引用中有幾納秒的差異,但可讀性還是有的 – 2014-10-08 13:45:52

0

只有當您確定您將始終使用數組才能使用它時才使用它。有時前,我已經在一些刮板類下面的代碼:

$ip = $this->getIP()[0]; 

我沒有檢查這個功能是否可以返回字符串,它引起了一些邏輯錯誤。現在,當我想陣列的項目我做

$ip = $this->getIP() 

if(is_array($ip)) { 
    $ip = $ip[0]; 
} else { 
    throw new Exception('Expects array here') 
}