PHP 数组:计数还是大小?

php
2022-08-30 06:11:01

要找到PHP中的元素数量,哪个更快/更好/更强?$array

count($array)或?sizeof($array)

编辑

感谢安迪·莱斯特(Andy Lester),我从多语言的角度完善了我的问题。手动评论者说

“[sizeof]在许多基于C的语言中并不相同”

这是真的吗?


答案 1

如果它们相同,我会使用,因为根据我的经验,它更常见,因此会导致更少的开发人员阅读你的代码说“,那是什么?”并且不得不查阅文档。count()sizeof()

我认为它意味着不像在C中那样工作(计算数据类型的大小)。它可能明确提到了这一点,因为PHP是用C语言编写的,并且为C函数(,等)提供了许多同名的包装器。sizeof()strlen()printf()


答案 2

根据 phpbench

是否值得提前计算循环的长度?

//pre-calculate the size of array
$size = count($x); //or $size = sizeOf($x);

for ($i=0; $i<$size; $i++) {
    //...
}

//don't pre-calculate
for ($i=0; $i<count($x); $i++) { //or $i<sizeOf($x);
    //...
}

给出了一个包含 1000 个键和 1 个字节值的循环。

                  +---------+----------+
                  | count() | sizeof() |
+-----------------+---------+----------+
| With precalc    |     152 |      212 |
| Without precalc |   70401 |    50644 |
+-----------------+---------+----------+  (time in µs)

因此,我个人更喜欢使用 count() 而不是 sizeof() 进行预计算


推荐