我在质疑自己,为什么这个工作?为什么这个有效? 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