在 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]; // Illegal: subscripting a parenthetical expression function ret($foo) { return $foo; } echo ret($x)[1]; // Illegal: subscripting a call expression
儘管有此限制,PHP 中還是有許多用於動態陣列存取的解決方法,例如:
// Using curly braces echo array_merge(array('a'), array('b', 'c'))[$key] ?? null; // Using ternary operator echo ($key >= 0 && $key <= 2) ? array('a','b','c')[$key] : null;
最終,在PHP 中動態存取陣列元素的最佳方法取決於特定的用例和效能要求。
以上是如何在 PHP 中動態存取數組元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!