Quelle est l'efficacité de définir en PHP?
C++ préprocesseur #define
est totalement différent.
Est le PHP define()
toute différente de celle que la simple création d'une var?
define("SETTING", 0);
$something = SETTING;
vs
$setting = 0;
$something = $setting;
- Soyez prudent avec ce langage de motif en PHP. Les constantes sont "libres" en C++ parce que toute la logique qui se passe au moment de la compilation. Ils sont coûteux en PHP, à la fois en termes de temps d'exécution et l'utilisation de la mémoire, comme il arrive lors de l'exécution. Ils devraient être utilisés plus de modération que vous le feriez en C++.
$something = 0;
est le PHP équivalent performance sage (ajouter un commentaire pour décrire la valeur). C'est malheureux, mais souvent la meilleure option - qu'est ce que le C++ préprocesseur fait pour vous sous les couvertures.
Vous devez vous connecter pour publier un commentaire.
"définir" opération elle-même est plutôt lent confirmé par xdebug profiler.
Voici des repères de http://t3.dotgnu.info/blog/php/my-first-php-extension.html:
pur "définir"
380.785 extrait/s
14.2647 dire msecs/première intervention
constantes définies avec "hidef' extension
930.783 extrait/s
6.30279 dire msecs/première intervention
lien cassé mise à jour
Le blog référencé ci-dessus a gauche de l'internet. Il peut encore être vu ici via la Wayback Machine. Voici un autre article similaire.
Les bibliothèques de l'auteur, les références peuvent être trouvées ici (apc_define_constants) et ici (hidef extension).
En général, l'idée d'une constante est constante, (ça a l'air drôle, non? ;)) à l'intérieur de votre programme. Ce qui signifie que le compilateur (interprète) remplacer "FOOBAR" avec FOOBAR de la valeur tout au long de votre script.
Voilà pour la théorie et les avantages - si vous compilez. Maintenant, PHP est assez dynamique et dans la plupart des cas, vous ne verrez pas un autre parce que le script PHP est compilé avec chaque exécution. Afai-pouvez-vous dire ne doit pas voir une différence notable de vitesse entre les constantes et les variables, sauf si vous utilisez un byte-code cache comme APC, Zend Optimizer ou eAccelerator. Alors il peut faire sens.
Tous les autres avantages/inconvénients des constantes ont été déjà noté ici et peut être trouvé dans la Manuel PHP.
0.00689506530762
0.00941896438599
Ceci est reproductible avec des résultats similaires. Il me semble que les constantes sont un peu plus lents à définir et/ou de l'utilisation de variables.
Voici les différences, à partir de la manuel
Pour moi, le principal avantage est la portée globale. Certes, je ne vous inquiétez pas au sujet de leur efficacité - les utiliser quand vous en avez besoin mondial d'une valeur scalaire qui ne doivent pas être altérés.
PAS efficace il apparaît. (Et je suis en fondant toutes les hypothèses ici sur un commentaire d'php.net, je n'ai toujours pas fait les repères de moi-même.)
rappelant une constante, prendra 2 fois plus de temps de rappel d'une variable.
la vérification de l'existence d'une volonté Constante de prendre 2ms et 12ms pour un faux positif!
Voici un point de référence à partir des commentaires de la page de définition de php en ligne de la doc.
de tris+php tfconsulting dot com dot au 26-Mar-2009 06:40
http://us.php.net/manual/en/function.defined.php#89886
Définir est simple statique sens, signifie que sa valeur ne peut pas être modifié en cours d'exécution, tandis que la variable est la dynamique du sens parce que vous pouvez manipuler librement sa valeur tout au long du processus.
Principales différences:
Quand je lance des tests de vitesse, des constantes et jetés beaucoup roulé un peu plus vite que la définition de variables et de les jeter dehors.
Pas sûr de l'efficacité, mais il est plus que la création d'un var: