Para encontrar o número de elementos em um PHP $array
, qual é mais rápido / melhor / mais forte?
count($array)
ou sizeof($array)
?
Editar
Graças a Andy Lester, refinei minha pergunta a partir de uma perspectiva multilíngue. Os comentaristas do manual dizem
"[sizeof] não significa o mesmo em muitos outros idiomas baseados em C"
Isso é verdade?
Respostas:
Eu usaria
count()
se eles fossem iguais, pois, na minha experiência, é mais comum e, portanto, fará com que menos desenvolvedores que leem seu código digam "osizeof()
que é isso?" e ter que consultar a documentação.Eu acho que isso significa
sizeof()
que não funciona como em C (calculando o tamanho de um tipo de dados). Ele provavelmente fez esta menção explícita porque o PHP é escrito em C, e fornece uma grande quantidade de embalagens com nomes idênticos para funções C (strlen()
,printf()
, etc.)fonte
De acordo com o phpbench :
Vale a pena o esforço para calcular antecipadamente o comprimento do loop?
Um loop com 1000 teclas com valores de 1 byte é fornecido.
Então, eu pessoalmente prefiro usar count () em vez de sizeof () com pré-calc .
fonte
Eles são idênticos de acordo com
sizeof()
Na ausência de qualquer motivo para se preocupar com "mais rápido", sempre otimize para o ser humano. O que faz mais sentido para o leitor humano?
fonte
Segundo o site,
sizeof()
é um apelido decount()
, portanto, eles devem estar executando o mesmo código. Talvezsizeof()
tenha um pouco de sobrecarga porque precisa resolvê-locount()
? Deve ser muito mínimo embora.fonte
Eu sei que isso é antigo, mas só queria mencionar que tentei isso com o PHP 7.2:
e o resultado foi:
Então é só usar
count()
.fonte
1 000 000 000 iteration of count() took 525 sec
1 000 000 000 iteration of sizeof() took 1361 sec
sizeof()
é apenas um pseudônimo decount()
como mencionado aquihttp://php.net/manual/en/function.sizeof.php
fonte
Por favor, use a função de contagem. Aqui está um exemplo de como contar a matriz em um elemento
A
count()
função retorna o número de elementos em uma matriz.A
sizeof()
função retorna o número de elementos em uma matriz.A
sizeof()
função é um alias dacount()
função.fonte