如標題 $array0=$array[0]與$array0=$array['0']都可以得到數組的第一個值 求區別
回複討論(解決方案)
一般情況下不用單引號即可
因為都是數字 0,所以沒有區別
編寫程式還是通用規則寫的好,這樣代碼規範,不容易出錯,也方便其他人員閱讀。
因為都是數字 0,所以沒有區別
如果換成1 2 3 之類的呢??
編寫程式還是通用規則寫的好,這樣代碼規範,不容易出錯,也方便其他人員閱讀。
呐呐 就是說 這倆個沒什麼區別嘍
細微區別 執行的時候 $array[0] 少調用一次 C的strtol函數(其實是:__strtol_internal函數)
沒區別嗎? 加上單引號代表是string ?非int
$array = array("1" => "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
沒區別嗎? 加上單引號代表是string ?非int
$array = array("1" => "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
同意樓上的看法
中括弧中的是索引值可以是整型和字串類型 ' ' 表示是字串的類型,若果不加則認為是整型0
只要是數字,就沒有數實值型別和字元類型的區別
var_dump(3.2 == '3.2'); //true
因為都是數字 0,所以沒有區別
如果換成1 2 3 之類的呢??
鍵名的資料類型不一樣,加上單引號運行速度可以提高
沒區別嗎? 加上單引號代表是string ?非int
$array = array("1" => "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
同意樓上的看法
中括弧中的是索引值可以是整型和字串類型 ' ' 表示是字串的類型,若果不加則認為是整型0
PHP數組中如果索引字串可以被轉換成數字也會被轉換成數字索引 多了步轉換過程
沒區別嗎? 加上單引號代表是string ?非int
$array = array("1" => "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
試著敲了下,結果輸出的都是bar2,所以還是樓上的觀點“PHP數組中如果索引字串可以被轉換成數字也會被轉換成數字索引 多了步轉換過程 ”
?字???。
但
$array[a] 合 $array['a'] 有??,前者?影?效率。
只要是數字,就沒有數實值型別和字元類型的區別
var_dump(3.2 == '3.2'); //true
因為都是數字 0,所以沒有區別
如果換成1 2 3 之類的呢??
那個返回True,是因為自動轉換資料類型來比較了,如果你換成用===來對比,返回的就是false了。
php是弱類型的語言,在運算的時候會自動轉換為合適的資料類型。
剛才做了下測試,得出了這樣的結論:
帶引號的整數字串會自動轉換成數字,做為整數索引,非整數數字則不會轉換,仍舊按字串索引來對待。
不帶引號的數字,非整數的會取整後做為整數索引
另外,未變定義為常量的字串做為索引,不帶引號的話,雖然能得到正確的結果,但是會有警告錯誤。