php - matrices - variables y constantes en html
¿Cual es mas rápido? Constantes, Variables o Matrices Variables (5)
La diferencia sería realmente pequeña (micro optimizaciones). Es mejor que encapsule algunas de sus constantes en clases para que pueda acceder a ellas por Classname::CONSTANT
para no contaminar el espacio de nombres global de su aplicación.
Mi aplicación web actual usa alrededor de 30 Contantes (DEFINE ()). Estoy leyendo cosas que las variables son más rápidas. Siempre que haya una convención de nomenclatura para evitar sobrescrituras de variables, la única desventaja que veo es que estas variables deberían definirse como variables globales de alguna forma en cada función.
¿Cual es mas rápido? Utilizo estas constantes mucho a lo largo de mi aplicación y probablemente siempre agregaré más a la lista y se usarán dentro y fuera de funciones y clases.
Los resultados de estos puntos de referencia todavía se mantienen; las variables son más rápidas que tanto define()
como const
: http://planetozh.com/blog/2006/06/php-variables-vs-constants
http://www.joomlaperformance.com/articles/performance/52_php_programming_tips_43_13_2.html
Tampoco puedo imaginar que cualquier diferencial de velocidad sea consecuente. Lo que sí es cierto es que las variables son mucho más fáciles de usar que las constantes en muchos casos.
Sin embargo, parece que su verdadero problema es que tiene una gran cantidad de datos de configuración y desea evitar tener que pasar muchas variables a las funciones, o tener que convertirlas en globales.
No hay una sola respuesta que funcione para todos, pero una solución popular es utilizar una clase de registro o crear una tú mismo. Puedes hacerlo bastante fácilmente declarando una matriz php. A continuación, inicializa el objeto de registro y sus funciones y clases acceden a él a través de una llamada de método estático. En lugar de proporcionarle fragmentos, solo lo referiré a zend_config y zend_registry como ejemplos. Si bien ZF proporciona esto, no debe temer lanzar sus propias versiones, ya que ninguna es particularmente difícil de recrear en una forma más simple si desea evitar el uso de ZF en su proyecto.
Una prueba rápida mostró que definir constantes ( define(''FOO'', ''bar'');
) es aproximadamente 16 a 18 veces más lento que definir una variable ( $foo = ''bar'';
), pero usar el valor definido (constante) es aproximadamente de 4 a 6 veces más rápido.
Las constantes definidas usando define()
son bastante lentas en PHP. La gente realmente escribió extensiones (como hidef ) para mejorar el rendimiento.
Pero a menos que tengas muchas constantes, esto no debería marcar una gran diferencia.
A partir de PHP 5.3 también puede usar constantes de tiempo de compilación usando const NAME = VALUE;
. Esos son mucho más rápidos.