267 votes

Tableau PHP: le comte ou sizeof?

Pour trouver le nombre d'éléments dans un PHP $array, ce qui est plus rapide/mieux/plus fort?

count($array) ou sizeof($array) ?

Modifier

Merci à Andy Lester, j'ai affiné ma question à la moyenne à partir d'une perspective multilingue. Le manuel des commentateurs dire

"[sizeof] ne signifie pas la même dans de nombreuses autres langues, basé sur C"

Est-ce vrai?

229voto

alex Points 186293

Je voudrais utiliser count() s'ils sont les mêmes, comme dans mon expérience, il est plus commun, et, par conséquent, génère moins de développeurs de la lecture de votre code pour dire "sizeof(), ce qui est?" et d'avoir à consulter la documentation.

Je pense qu' sizeof() ne fonctionne pas comme il le fait dans C (calcul de la taille d'un type de données). Il a probablement fait cette mention explicitement parce que PHP est écrit en C, et fournit beaucoup d'portant le même nom à des wrappers pour les fonctions C (strlen(), printf(), etc)

114voto

Gaz Points 126

Selon phpbench:

Est-il encore la peine de calculer la longueur de la boucle à l'avance?

par exemple, for ($i=0; $i<$size; $i++) au lieu de for ($i=0; $i<sizeOf($x); $i++)

Une boucle avec 1000 avec les touches de 1 octet valeurs sont données.

Avec pré-calc - comte (le) temps Total: 152 µs

Sans pré calc - comte (le) temps Total: 70401 µs

Avec pré-calc - sizeof() temps Total: 212 µs

Sans pré calc - sizeof() temps Total: 50644 µs

Donc, personnellement, je préfère utiliser la fonction count() au lieu de sizeof() avec pré calc.

43voto

Andy Lester Points 34051

Ils sont identiques selon http://php.net/manual/en/function.sizeof.php

En l'absence de toute raison de s'inquiéter "plus vite", toujours optimiser pour l'homme. Qui a plus de sens pour le lecteur humain?

24voto

Andy Groff Points 1516

Selon le site web, sizeof est un alias de compter, de sorte qu'ils doivent exécuter le même code. Peut-être sizeof a un peu plus de lag parce qu'il doit résoudre pour compter? Il doit être très minime si.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X