2009-01-24 8 views
0

J'ai la ligne suivante:Y at-il une valeur dans PHP vérifiant un bool vs un int?

$this->magicQuotes = (bool) get_magic_quotes_gpc(); 

Je prends la get_magic_quotes_gpc() stocker dans mon objet tel qu'il est utilisé autant de fois que je produis le SQL. Je le convertis aussi en booléen.

Je me demande si cela vaut la peine de le convertir en bool. La principale raison pour laquelle je suis est pour la vitesse que la déclaration qui vérifie est:

if ($this->magicQuotes) { ... } 

que je pense serait un peu plus rapide si le test est strictement une valeur bool.

Y at-il une raison quelconque cela, il est pas plus rapide ou s'il y a d'autres raisons de ne pas le faire?

Répondre

2

Si vous ne convertissez pas en bool, PHP devra quand même convertir en bool lors de l'évaluation de l'expression dans l'instruction if. Donc si vous le convertissez explicitement ou non, il sera converti en bool à un moment ou un autre, et je préférerais la façon dont vous pouvez taper moins.

En outre, avec ce genre de petit optimisation, vous devriez être inquiétant plus sur ce qui est plus lisible que se soucier de ce qui est 0,0 ... 01 secondes plus vite que l'autre.

1

Il ne devrait pas être plus vite ... selon la façon dont php convertit les deux bool et int à la fin.

Typiquement, sur x86, bool et int, dans if(foo) serait un test contre zéro, et sauter en conséquence. Le casting ne devrait donc pas améliorer les performances.

Questions connexes