php字符串與數組的特殊情況

來看一個特別的實驗

$arr=array('a','b','c');
var_dump(isset($arr[0][0])); // true
print_r($arr[0][0]); //string:a
print_r($arr[1][0]); //string:b

沒錯,$arr命名是一維數組上面代碼卻返回true


原因:

還記得php中的字符串可以用數組的形式進行讀取操作的嗎?

$str = 'abcdefg';
echo $str[0];// a
echo $str[4];// e

值得注意的是,php中字符串的數據結構不是數組,而是提供了一個方便的操作而已

上面的實驗中

$arr[0][0]在被php解析的過程是這樣的:

$arr[0] 指向的是字符串 'a' 然後對字符串進行操作 相當於 $str='a'; $str[0]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章