2012-01-09 14 views
7

Me preguntaba cuáles son las ventajas de usar un public static function o private static function en lugar de simplemente public function o private function?PHP | ¿Por qué debería usar la función estática pública/privada estática en lugar de la función pública/privada?

+0

Esto no es una cuestión de la ventaja o desventaja. Además, ¿ha buscado en el sitio? – BoltClock

+4

no necesita crear objetos para usar métodos estáticos ... ¡Y hay muchas preguntas relacionadas! – meze

+0

Sí, estaba leyendo algo del sitio de PHP Manual, pero no entiendo por qué usando métodos estáticos, solo entendí que en lugar de llamar a la función pública así '->' puedo hacer esto '::' y alguna otra información que leí sobre métodos estáticos en el sitio manual de php ... – Roland

Respuesta

22

Los métodos "normales" (generalmente llamados instancias métodos) se invocan en una instancia de la clase en la que están definidos. El método siempre tendrá acceso a su objeto a través del $this, por lo que puede funcionar con datos transportados por ese objeto (y de hecho modificarlo). Este es un aspecto central de la programación orientada a objetos, y es lo que hace que una clase sea más que solo un montón de datos.

Las llamadas a métodos estáticos, por otro lado, no están asociadas a un objeto en particular. Se comportan como funciones regulares a este respecto; de hecho, la única diferencia es que pueden estar marcados como private y también tienen acceso a métodos privados y variables en instancias propias de su clase. Las funciones estáticas son realmente solo una extensión de la programación de procedimientos.

Por ejemplo, un método de instancia se llama en un objeto:

$object = new MyClass(); 
$result = $object->myInstanceMethod(); 

un método estático se llama en la propia clase:

$result = MyClass::myStaticMethod(); 
Cuestiones relacionadas