为什么这样做有效?函数中的PHP直接数组值
我在问自己,为什么这样做为什么这样做有效?函数中的PHP直接数组值,php,arrays,Php,Arrays,我在问自己,为什么这样做 $key = 'question_1'; $key = explode('_', $key)[1]; var_dump($key); Result: string(1) "1" 我的一个同事用过这个,但是这个叫什么?为什么它能工作?因为您使用的是PHP/5.4或更高版本:。在早期版本中,在能够访问单个位之前,必须将结果存储在变量中: $key = 'question_1'; $key = explode('_', $key); $key = $key[1]; va
$key = 'question_1';
$key = explode('_', $key)[1];
var_dump($key);
Result: string(1) "1"
我的一个同事用过这个,但是这个叫什么?为什么它能工作?因为您使用的是PHP/5.4或更高版本:。在早期版本中,在能够访问单个位之前,必须将结果存储在变量中:
$key = 'question_1';
$key = explode('_', $key);
$key = $key[1];
var_dump($key);
不过,对于这种特殊情况,good old(从PHP/4开始提供)也同样出色:
$key = 'question_1';
list(,$key) = explode('_', $key);
var_dump($key);
在这一行,PHP/5.5添加了一个新的变体:。除了数组/字符串文本(而不是函数调用)之外,它是相同的。为什么它可以工作?因为您使用的是PHP/5.4或更高版本:。在早期版本中,在能够访问单个位之前,必须将结果存储在变量中:
$key = 'question_1';
$key = explode('_', $key);
$key = $key[1];
var_dump($key);
不过,对于这种特殊情况,good old(从PHP/4开始提供)也同样出色:
$key = 'question_1';
list(,$key) = explode('_', $key);
var_dump($key);
在这一行,PHP/5.5添加了一个新的变体:。除了数组/字符串文本(而不是函数调用)之外,它是相同的。它被称为数组解引用,您可以阅读以下内容: 已添加函数数组解引用,例如
foo()[0]
另一点信息:
从PHP5.4开始,可以直接对函数或方法调用的结果进行数组解引用。在此之前,只能使用临时变量
它被称为数组解引用,您可以阅读以下内容: 已添加函数数组解引用,例如
foo()[0]
另一点信息:
从PHP5.4开始,可以直接对函数或方法调用的结果进行数组解引用。在此之前,只能使用临时变量
我们不知道为什么您以前没有看到过这个,但是它在许多语言中被广泛使用,被称为数组解引用。实际上PHP已经很晚了,它叫做。您以前没有看到它,因为许多系统运行<5.4,因此在5.4+中没有此功能有效的语法。如果你一直坚持使用5.3,你以前就不会看到它了。@scragar我几乎不会称之为“首选”。如果您必须使用
list()
,您也可以只分配一个变量,然后在下一行使用$var[1]
。例如,list
对类似foo(explode(…)[1])
的东西没有帮助。谢谢大家!我认为这是一种从数组中获取值的非常好的方法。我们不知道为什么您以前没有看到过这种方法,但它在许多语言中被广泛使用,被称为数组解引用。实际上PHP已经很晚了,它叫做。您以前没有看到它,因为许多系统运行<5.4,因此在5.4+中没有此功能有效的语法。如果你一直坚持使用5.3,你以前就不会看到它了。@scragar我几乎不会称之为“首选”。如果您必须使用list()
,您也可以只分配一个变量,然后在下一行使用$var[1]
。例如,list
对类似foo(explode(…)[1])
的东西没有帮助。谢谢大家!我认为这是一种从数组中获取值的非常好的方法。这不是字面解引用。是的,对不起,我会尽快修复它。我不会故意留下错误的答案:)那不是字面解引用。是的,对不起,我会尽快修复。我不会故意留下错误的答案:)