Comparativa: Variables, constantes y arrays en PHP
Bueno, ya que no pude encontrar nada en Google que me dijera a ciencia cierta que si era más eficiente usar constantes, variables o arrays en mis scripts, más que nada para todo lo que sea un valor “inmutable” a lo largo del script, decidí hacer una comparativa y acá están los resultados:
Las pruebas
Primero generé tres archivos de pruebas, un array.php, un constantes.php, y otro variables.php. Cada archivo tenía 5000 líneas en los que asignaba a una variable, array o constante, una cadena md5 generada aleatoriamente. Ej.:
variables.php (archivo de 230.404 bytes)
$V00000 = '4ed13b18242b1d9e03bbaa5fee7fdf36';
…
$V05000 = 89f157169de8d8f1daeac6c5cbee5204;
constantes.php (archivo de 270.412 bytes)
define('C00000', '90b6d2381a3dfc0fe7e58243671972ef');
…
define(’C05000′, 89f157169de8d8f1daeac6c5cbee5204);
array.php (archivo de 234.295 bytes)
$A[0] = '25dd49dbf3df44d0222f5ab74123a808';
…
$A[5000] = 89f157169de8d8f1daeac6c5cbee5204;
Resultados: Uso de memoria
Como me lo esperaba, las constantes usan muchísimo menos memorias que los arrays y las variables. Al cargar los distintos archivos, la memoria usada fué:
- constantes.php = 212.824
- array.php = 525.584
- variables.php = 565.144
Me sorprendió ver que se usara menos memoria para el array, que para las variables. El gráfico:

Resultados: Tiempo de ejecución
Hice un promedio entre las 10 ejecuciones de los scripts, y tengo que:
- variables.php = 0,063605547
- array.php = 0,073364019
- constantes.php = 0,087763548
Como se puede apreciar, la asignación de variables es más rápida que la asignación en un array y la definición de constantes. La explicación debe radicar en que para definir una constante en PHP, debemos llamar a la función define, mientras que las variables se asignan directamente.
Conclusiones
Bueno, no estaba equivocado en utilizar constantes en mis scripts por lo que veo. Me entró la duda porqué estoy metiéndome a full con WordPress y usan muy pocas constantes y muchas variables, incluso para lo que llamamos variables de configuración.
Me quedaría ver como es la operatoria, o sea los tiempos de acceso a las variables o las constantes, para realizar operaciones o concatenaciones. Ya para otra vez será.
9 Comentarios en “Comparativa: Variables, constantes y arrays en PHP”
Si no entendes la diferencia entre usar un array, constante o variable estás frito…No es una cuestión de gustos, es una cuestion de efectividad..sos un gil!
Estimado Alberto: siempre se dice que antes de comentar, tenés que leer. Si hubieras leído, te darías cuenta que este post habla de la diferencias de rendimientos en cuándo al uso de variables, arrays y constantes en PHP. He encontrado varias artículos en la red en los que hablan que el uso de variables es más eficiente que constantes y todo eso, asi que para sacarme las dudas, me puse a trabajar en un pequeño benchmark.
Y decidí compartirlo con todos, para que si hay otro que tenga la duda y busque una prueba concreta de la diferencia en los rendimientos entre usar una cosa y otra, lo encuentre aquí, con la documentación necesaria.
gabriel sosa
23 de Julio de 2006 a las 12:35 pm
hola, buen articulo, estaaba buscando algo por el estilo como para ver que implemento en un sisitema que requiere varios idiomas.
Ahora, en el comentario de arriba decis que has leido otros articulos acerca del uso de variables frente a las constantes, tendrias alguna url como para darme, que quiero leer un poco mas. Saludos. Gabriel
Daniel
3 de Noviembre de 2006 a las 10:40 am
Muy buen artículo, muy útil.
Ese Alberto es el típico salame que está pensando en demostrar que sabe más que los otros, en vez de colaborar y leer el sentido del artículo (yo laburo con algún otro salame parecido).
saludos!
chapulín
22 de Junio de 2007 a las 1:26 pm
Excelente Pablo esto de compartir hallazgos con desconocidos como nosotros, jeje
Parece, a veces, que estas actitudes como la tuya de publicar experimentos o ideas o pareceres acerca de esas exploraciones personales, resulta en vano, y realmente es todo lo contrario producen cosas muy buenas y se genera un efecto dominó de los mil demonios, mil gracias viejo y haga caso omiso de don Alberto, y le felicito la altura para responderle al susodicho!!
un abrazo,
chapulín
aurea Blog » Optimizando PHP
24 de Agosto de 2007 a las 5:48 am
[…] Pablo -de weBlog “UnLugar”- nos deja un interesante estudio de optimización sobre la definición de variables, constantes y matrices. […]
eNicaragua Informática » Optimizando PHP
4 de Septiembre de 2007 a las 7:41 pm
[…] Pablo -de weBlog “UnLugar”- nos deja un interesante estudio de optimización sobre la definición de variables, constantes y matrices. […]
Optimizando Php « Yumi Tominaga García
15 de Octubre de 2007 a las 12:37 pm
[…] Pablo -de weBlog “UnLugar”- nos deja un interesante estudio de optimización sobre la definición de variables, constantes y matrices. […]
Muy buen post, esta de mega nice, yo estaba buscando algo asi, hasta que encontre este magnifico post, ahora se que no hay problema en seguir usando las constantes, y pensaba que 100 constantes eran mucho jaja, este cuate usó 5000,
, bueno pues muchas gracias, ciao ciao
Alberto
13 de Junio de 2006 a las 5:51 pm