我在質疑自己,爲什麼這個工作?爲什麼這個有效? PHP函數直接數組值
$key = 'question_1';
$key = explode('_', $key)[1];
var_dump($key);
Result: string(1) "1"
我的一個同事使用這個,但是這是怎麼稱呼?
我在質疑自己,爲什麼這個工作?爲什麼這個有效? PHP函數直接數組值
$key = 'question_1';
$key = explode('_', $key)[1];
var_dump($key);
Result: string(1) "1"
我的一個同事使用這個,但是這是怎麼稱呼?
它爲什麼工作?因爲您使用PHP/5.4或更高版本:Function array dereferencing。在早期版本中,必須將結果存儲在一個變量能夠訪問各個位面前:
$key = 'question_1';
$key = explode('_', $key);
$key = $key[1];
var_dump($key);
雖然,對於這種特殊情況下,良好的老list()(可用自PHP/4)是一樣花哨:
$key = 'question_1';
list(,$key) = explode('_', $key);
var_dump($key);
在這一行上,PHP/5.5增加了一個新的變體:array and string literal dereferencing。這是相同的,除了數組/字符串文字(而不是函數調用)。
我們不知道爲什麼*你以前沒有見過這個,但它在很多語言中被廣泛使用,被稱爲* array dereferencing *。實際上PHP已經很晚了。 – deceze
它被稱爲[數組解引用](http://php.net/manual/en/migration54.new-features.php)。您之前沒有看到它,因爲許多系統運行<5.4,因此沒有此功能 – kero
5.4+中的有效語法。如果你一直堅持5.3,你將不會看到它。 – bcmcfc