Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/01/2009, 19:34
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Clases con métodos compartidos

Cita:
Iniciado por santhy Ver Mensaje
Si con "compartidos" te refieres a los estáticos (static function XXXX() ) entonces la diferencia (en teoría) es esta:
una función static test() se llama como NombreClase::test() (y no debe llamarse como $objeto->test(); y que produce un STRICT_ERROR).
Por tanto, es lógico pensar que ocupa menos espacio en memoria, al no necesitar el puntero al objeto implícito $this
Sin embargo, los métodos no-estáticos (como $objeto->test() ) sí necesitan hacer referencia a este puntero.
Además, por cada objeto creado se duplican todas las variables (las funciones creo que no, pero esto no puedo asegurarlo) en el espacio de memoria de cada objeto (pues son distintas para cada objeto); sin embargo, las variables estáticas, en este caso, tampoco son duplicadas.

Espero haberte entendido y aclarado algo
Mmm... tienes idea en el orden de cuanto "ahorro" estamos hablando de memoria y por cuanto espacio de tiempo?

Este tipo de "optimizaciones" no tienen sentido. Es como cuando dicen "cada vez que dejo de usar una variable le hago unset".... ¿no es más fácil esperar a que termine la ejecución del PHP?

En "situaciones normales" (no levantar una consulta gigante en un array en memoria y luego recorrerlo) este tipo de "estrategias" no surten ningún efecto y lo que hacen es generar "desastres" a la hora de diseñar sistemas porque ponemos solo énfasis en la "optimización", perdiendo en foco en cumplir con la funcionalidad requerida.

PD:
si me dieran un dolar por cada vez que me preguntan sobre "cómo optimizar al extremo el código PHP", sería bastante rico.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com