在 PHP 中,动态访问数组值给寻求高效单行的开发人员带来了挑战。当尝试在单行代码中使用数组映射变量时,会出现此问题。虽然所需的语法(如 echo array('a','b','c')[$key];)会导致错误,但使用中间变量(如 $variable = array('a','b) 的解决方法) ','c');回显$变量[$键];
虽然此方法解决了眼前的问题,但它引入了一个不必要的变量。为了深入研究这一限制背后的技术原因,PHP 的语法将下标表示法限制为变量表达式,而不是一般表达式。此语法与许多其他允许在任何表达式上添加下标的编程语言不同。
有趣的是,PHP 的语法包含其他情况,其中在非变量表达式上添加下标会导致无效语法,例如:
$x = array(1,2,3); print ($x)[1]; //illegal, on a parenthetical expression, not a variable exp. function ret($foo) { return $foo; } echo ret($x)[1]; // illegal, on a call expression, not a variable exp.
虽然无法在 PHP 中为任意表达式添加下标可能被视为一种缺陷,但它可能源于所使用的解析器生成器的限制或维护向后的愿望兼容性。
以上是为什么我不能用一行代码在 PHP 中动态访问数组值?的详细内容。更多信息请关注PHP中文网其他相关文章!