作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 java 和 C++ 中,当我们不知道大小时 - 不像在 PHP 中那样使用数组,而是使用 linkedList 等。
在 PHP 中存在 SPL,但大多数时候程序员使用数组,为什么(因为人们不了解 SPL)?
什么时候我们应该在 PHP 和什么时候使用 SPL 以及在这种情况下 PHP 和 Java/C++ 之间的区别是什么?
最佳答案
每个 PHP 请求都必须初始化所有变量,并在请求后释放它们。因此,特殊数据结构(如最大堆、链表或队列)比数组更高效的情况并不常见。对于初学者来说,数组也更容易理解和使用。
PHP 与 C++ 的不同之处在于数组长度是动态的。您可以随时添加元素。
$arr=array();
$arr[]=5; //add integer to array
echo count($arr); //1
$arr[]=7;
echo count($arr); //2
你可以动态创建数组并将其添加到另一个数组
$arr[]=array();
$arr[2][]=5;
echo count($arr); //3
echo count($arr[2]); //1
这将创建新数组,添加值为 5 的元素并将其作为元素添加到数组 $arr。
$arr[][]=5;
在 PHP 中,数组是哈希表,因此您不仅可以拥有整数键,还可以拥有字符串:
$arr['somekey']='somevalue';
如果数组元素是整数,那么每个元素都需要一个占 16 字节的值结构 (zval)。还需要一个哈希桶——占用 36 个字节。每个值有 52 个字节。内存分配 header 占用另外 8 个字节*2 - 即 68 个字节。
关于 PHP 中的数组:http://oreilly.com/catalog/progphp/chapter/ch05.html
关于php - SPL 与数组 : When should we use SPL and when should we use Array in PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166405/
我是一名优秀的程序员,十分优秀!