2013-03-07 44 views
1

我覺得這個問題很愚蠢,因爲它看起來很基本,但它真的讓我感到困擾。沒有創建變量返回數組元素

我有一個方法返回一個數組與單個元素。我只是希望它返回未包裝在數組中的元素。我試過這個。

return $f->getValue()[0]; 

它給出了一個錯誤,但如果我將它保存到一個變量,它工作正常。

$v = $f->getValue(); 
return $v[0]; 

我無法弄清楚....

回答

2

使用reset()

<?php return reset($f->getValue()); ?> 

編輯:復位()可能優於目前的(),因爲它也確保了內部指針復位,儘管它沒有做太大的區別,如果數組只包含一個元素。

+0

這很煩人,這需要一個解決方法......至少他們在5.4中修復了它 – 2013-03-08 01:13:31

1

據我所知,因爲你是返回一個數組,你只能得到一個數組。您可以改爲將數組保存到類中的變量(可由$f->myArray訪問),然後僅返回字符串部分。或者另一種選擇是做你的第二個例子,返回數組並從中檢索字符串。

+0

這是如此怪異 – 2013-03-07 05:58:26

+0

我可能是錯的。如果你只想要字符串,爲什麼你想返回一個數組? – Sam 2013-03-07 06:01:12

+0

這是一個庫...他們是返回字符串數組的情況 – 2013-03-07 21:37:04

4

你正在嘗試做的,被稱爲array dereferencing,且只能在PHP作爲5.4版本(如果您滾動的文檔的文章我的幾行鏈接到,你會看到它提到)。