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]

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