在PHP中,普通的陣列下標必須是固定定義的字串或數字,不能是變數。
例如,以下程式碼是不正確的:
$index = 'name'; $array = []; $array[$index] = 'John';
在上面的範例中,將會提示錯誤"Undefined index",因為在陣列$array
中不存在名為$index
的下標。
解決這個問題的方法是,透過 {}
將變數當作下標的值來使用。例如:
$index = 'name'; $array = []; $array[$index] = 'John'; $array2 = []; $array2["{$index}"] = 'John';
上面的程式碼將會正常運作,它們都會將'John'
作為$array
和$array2
陣列中"name"
這個下標的值。
除了上述方法之外,使用變數作為下標還有一種方法,那就是使用variable variable
,透過將變數名稱作為另一個變數的值,並在變數名前添加$
符號來引用變數。例如:
$index = 'name'; $$index = 'John'; echo $name;
在上面的程式碼中,實作了動態的變數定義和使用。 $$index
可以看做是$name
的簡寫形式,它將會被賦值為'John'
,而echo $name
將會輸出'John'
。
雖然 variable variable
可以讓程式更動態,但是它也會讓程式碼變得難以理解和維護,所以應該謹慎使用。
總之,PHP中的數組下標不能使用變量,並且可以透過 {}
或 variable variable
的方式來使用變數作為下標的值。
以上是php數組下標不能用變數嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!