PHP 中的动态数组访问 [原文:动态访问数组值]
PHP 提供了使用括号表示法访问数组值的功能([])。然而,一个常见的痛点是在使用表达式时无法直接实现这一点。
问题:
在以下示例中,尝试使用括号内的表达式会产生错误:
echo array('a', 'b', 'c')[$key];
解决方案:
此错误的原因是 PHP 语法的限制。下标表示法仅对变量表达式有效,对一般表达式无效。为了克服这个问题,您可以使用中间变量:
$variable = array('a', 'b', 'c'); echo $variable[$key];
技术解释:
PHP 的语法不允许在表达式上使用下标表示法。这意味着您不能将其应用于函数调用、括号或其他表达式的结果。此行为与其他语言不同,其他语言可以根据表达式解析下标。
无效下标的其他示例:
$x = array(1, 2, 3); print ($x)[1]; // Invalid: Subscripted expression is a parenthetical expression. function ret($foo) { return $foo; } echo ret($x)[1]; // Invalid: Subscripted expression is a call expression.
以上是为什么无法在 PHP 中使用表达式访问数组值?的详细内容。更多信息请关注PHP中文网其他相关文章!