在 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中文網其他相關文章!