关于PHP中数组模型的一点猜想
2012-12-02 20:23
253 查看
[align=center]关于PHP中数组模型的一点猜想[/align]
[align=center]作者:53期 李雄飞[/align]
根据我个人的理解,数组在内存中应该是一片连续的空间。在数组使用前需要在内存中开辟一片规定大小的空白内存,
如果声明的大小小于可用的连续内存大小,应该报内存溢出的错误。
对于使用过PHP数组的童鞋应该能够很快速的判断出PHP中的数组并不具备以上特点。一,数组声明无需进行size的确定
;二,数组没有使用上限。通过这两点,我们可以判断出,PHP中的数组是链表式的松散结构,而不是连续内存空间。
PHP中的数组可以分为索引数组以及关联数组两种形式。索引数组是一种计数型的数组结构。而关联数组则是map数据结构
的一种实现,也就是key-value的结构。
我们通过以下的例子就索引数组和关联数组进行一些讨论。
$arr=array(1,2,3,'name'=>'misko_lee','age'=>22); //定义一个索引、关联混合型数组
for($i=0;$i<count($arr);$i++)
echo $arr[$i]; //这里我们可以看到下标溢出的错误提示
Cout($arr)函数调用返回$arr数组的长度。但是for循环只能够正常输出索引数组。因而,我们可以判断,
索引数组与关联数组是两种不同的实现。因而也证明了PHP中的数组是松散型的结构的猜想。
关于索引数组我们还有以下猜想:
$arr[100]=100;
$arr[]=101; //此时$arr[]自动增长的下标为101。
上面的实验证明了我们的猜想,PHP中的数组计数器并不是从数组内存首地址开始计数,
而是一种伪计数方式。因此,利用计数器去判断数组大小是完成错误的。
以上言论是个人胡言乱语,具有十分不可靠的因素。欢迎各位学长童鞋指出错误。好人一生平安。
最后PS一句:数组使用foreach遍历后如果不是需求原因,请将数组指针利用reset()函数进行遍历重置
--------------------------------------------end--------------------------------------------
以后将和大家一起讨论离散数学中二维数组的应用,软件设计中的布尔数组的应用。
[align=center]作者:53期 李雄飞[/align]
根据我个人的理解,数组在内存中应该是一片连续的空间。在数组使用前需要在内存中开辟一片规定大小的空白内存,
如果声明的大小小于可用的连续内存大小,应该报内存溢出的错误。
对于使用过PHP数组的童鞋应该能够很快速的判断出PHP中的数组并不具备以上特点。一,数组声明无需进行size的确定
;二,数组没有使用上限。通过这两点,我们可以判断出,PHP中的数组是链表式的松散结构,而不是连续内存空间。
PHP中的数组可以分为索引数组以及关联数组两种形式。索引数组是一种计数型的数组结构。而关联数组则是map数据结构
的一种实现,也就是key-value的结构。
我们通过以下的例子就索引数组和关联数组进行一些讨论。
$arr=array(1,2,3,'name'=>'misko_lee','age'=>22); //定义一个索引、关联混合型数组
for($i=0;$i<count($arr);$i++)
echo $arr[$i]; //这里我们可以看到下标溢出的错误提示
Cout($arr)函数调用返回$arr数组的长度。但是for循环只能够正常输出索引数组。因而,我们可以判断,
索引数组与关联数组是两种不同的实现。因而也证明了PHP中的数组是松散型的结构的猜想。
关于索引数组我们还有以下猜想:
$arr[100]=100;
$arr[]=101; //此时$arr[]自动增长的下标为101。
上面的实验证明了我们的猜想,PHP中的数组计数器并不是从数组内存首地址开始计数,
而是一种伪计数方式。因此,利用计数器去判断数组大小是完成错误的。
以上言论是个人胡言乱语,具有十分不可靠的因素。欢迎各位学长童鞋指出错误。好人一生平安。
最后PS一句:数组使用foreach遍历后如果不是需求原因,请将数组指针利用reset()函数进行遍历重置
--------------------------------------------end--------------------------------------------
以后将和大家一起讨论离散数学中二维数组的应用,软件设计中的布尔数组的应用。
相关文章推荐
- 关于PHP数组的hash冲突的一点疑问
- 关于PHP数组复习的一点心得
- 关于PHP关联数组相关知识介绍
- 关于php 高并发解决的一点思路
- 关于php扩展编程如何返回数组的问题
- 关于PHP递归数组代码分析
- C++程序设计(关于函数中数组传递的一点心得)
- PHP中return返回数组的一点用法
- 关于数组合并,php
- 关于同名表单提交 并php获取数组结果!!(整整一天)
- PHP中关于数组的函数
- php 移除数组重复元素的一点说明
- 关于数组和N进制数的一点浅想
- PHP关于的数组的一个小笔记
- 关于PHP数组转字符串详细介绍
- php入门学习知识点五 关于php数组的几个基本操作
- 关于理解《C++ 对象模型》中:把单一元素的数组放在末尾,struct可以拥有可变大小的数组
- 关于Unity在2D的UGUI和3D模型交错时渲染顺序的一点探讨
- 关于php的一点资源