我只需要检查一个数组是否有多个元素.我试着这样做:
if (isset($arr['1']))
Run Code Online (Sandbox Code Playgroud)
另一种传统方式是
if (sizeof($arr)>1)
Run Code Online (Sandbox Code Playgroud)
哪两个更好?在这种情况下,我应该如何判断两种替代方法?是否有任何性能检查仪可以测量哪个更好?
Chi*_*uzo 340
用这个
if (sizeof($arr) > 1) {
....
}
Run Code Online (Sandbox Code Playgroud)
要么
if (count($arr) > 1) {
....
}
Run Code Online (Sandbox Code Playgroud)
sizeof()是别名count(),他们的工作方式相同.
编辑:
回答问题的第二部分:问题中的两行代码不是替代方法,它们执行不同的功能.第一个检查是否$arr['1']设置了值,而第二个返回数组中的元素数.
And*_*ong 44
if(is_array($arr) && count($arr) > 1)
只是为了确保$ arr确实是一个数组.
sizeof是别名count,我更喜欢使用count,因为:
if (count($arr) >= 2)
{
// array has at least 2 elements
}
Run Code Online (Sandbox Code Playgroud)
sizeof()是别名count().两者都可以处理非数组,但如果参数是数组或Countable对象,它们只返回大于1的值,所以你对此非常安全.
使用 count()
if (count($my_array) > 1) {
// do
}
Run Code Online (Sandbox Code Playgroud)
这个页面解释得很好http://phparraylength.com/
我喜欢的count()功能,而不是sizeOf()作为sizeOf()只是一个别名count(),并不意味着在许多其他语言一样.许多程序员希望sizeof()返回分配的内存量.