PHP数组:count或sizeof?
要findPHP $array
中元素的数量,哪个更快/更好/更强?
count($array)
或sizeof($array)
?
编辑
感谢安迪·莱斯特(Andy Lester),我从多语言的angular度将我的问题提炼为意思。 手册的评论者说
“[sizeof]并不意味着基于C的许多其他语言是相同的”
这是真的?
如果它们是相同的,我会使用count()
,因为根据我的经验,这是更常见的,因此会导致更less的开发人员阅读您的代码来说“ sizeof()
,那是什么? 并不得不查阅文件。
我认为这意味着sizeof()
不像C中那样工作(计算数据types的大小)。 这可能是明确提到的,因为PHP是用C语言编写的,并且为C函数( strlen()
, printf()
等)提供了很多相同名称的包装器。
根据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个字节值的循环。
预计算() 总时间:152μs
没有预计算()总时间:70401μs
预计算 – sizeof()总时间:212μs
没有预先计算 – sizeof()总时间:50644微秒
所以我个人更喜欢使用count()而不是sizeof() 和pre calc 。
他们根据sizeof()
是相同的
在没有任何理由担心“更快”的情况下,总是为人类进行优化。 这对于读者来说更有意义吗?
根据网站, sizeof()
是count()
的别名,所以他们应该运行相同的代码。 也许sizeof()
有一点点的开销,因为它需要解决它count()
? 尽pipe如此,它应该是非常小的。
sizeof()
只是这里提到的count()
的别名