可能重複:
PHP syntax for dereferencing function result調用PHP爆炸並訪問第一個元素?
我有一個字符串,它看起來像1234#5678。現在我打電話這樣的:
$last = explode("#", "1234#5678")[1]
它不工作,有一些語法錯誤...但在哪裏?我期望的是在$last
中的5678。這不適用於PHP?
可能重複:
PHP syntax for dereferencing function result調用PHP爆炸並訪問第一個元素?
我有一個字符串,它看起來像1234#5678。現在我打電話這樣的:
$last = explode("#", "1234#5678")[1]
它不工作,有一些語法錯誤...但在哪裏?我期望的是在$last
中的5678。這不適用於PHP?
當前PHP版本中不支持數組解引用(不幸)。但是你可以用list
[docs]直接指定數組元素的變量:
list($first, $last) = explode("#", "1234#5678");
UPDATE
由於PHP 5.4(發佈01-MAR-2012),它支持array dereferencing。
,如果你在字符串中有很多值,那麼你可以使用 $ last = end(explode('#',$ string)); – 2013-02-26 11:11:06
列表的替代是'list(,$ last)= ....'。那麼當你不需要它時,你將不會有第一個變量掛起。 – 2017-11-16 20:30:21
最可能的PHP會被語法混淆。只是explode
結果分配給數組變量,然後在其上使用索引:
$arr = explode("#", "1234#5678");
$last = $arr[1];
哇,這很糟糕:D ...好的,現在我知道了。 – EOB 2012-01-11 11:28:02
snap!你會贏得:) – 2012-01-11 11:28:08
PHP可以稍微變暗。您可能需要在兩行上執行此操作:
$a = explode("#", "1234#5678");
$last = $a[1];
你不能做到這一點:
explode("#", "1234#5678")[1]
因爲explode
是一個函數,而不是一個數組。它肯定會返回一個數組,但是在PHP中,您不能將該函數視爲數組,直到它被設置爲數組。
這是如何做到這一點:
$last = explode('#', '1234#5678');
$last = $last[1];
這裏是如何得到它歸結爲一條線:
$last = current(array_slice(explode("#", "1234#5678"), indx,1));
哪裏indx
是你在數組中想要的指數,在你例如它是1.
這在PHP中不可行。 – 2012-01-11 11:26:36
你將能夠在PHP 5.4中執行此操作(Array Dereferencing),而不是當前的5.3 – 2012-01-11 15:15:42