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?
Respuesta
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();
- 1. php función estática
- 2. ¿Sobrecarga de la función estática?
- 3. variable estática global vs variable estática en la función?
- 4. función no estática frente a función estática y variable
- 5. Acceso variable privada de la función estática en php
- 6. Función estática Ayuda C++
- 7. llamada ambigua a la función estática sobrecargada
- 8. LoadControl en función estática/compartida
- 9. Variable global estática utilizada por la función miembro en línea
- 10. ¿Por qué declarar una variable o función estática en C?
- 11. Función recursiva con la variable estática
- 12. Concurrencia de función estática ASP.NET
- 13. extern en una función estática en C++
- 14. ¿Por qué ServerSocket.setSocketFactory estática?
- 15. impedir la importación de la función de la biblioteca estática
- 16. Una alternativa a la anotación @Value en la función estática
- 17. Función estática no templada en la clase de plantilla
- 18. Variable estática en función establecida llamando a otra función
- 19. Problema con consulta SQL cuando se llama a una función estática de otra función estática en la misma clase
- 20. ¿Ventajas de utilizar una función miembro estática en lugar de una función miembro no estático equivalente?
- 21. Puntero de función al miembro de la clase estática?
- 22. Declarar una función estática y luego no estática: ¿es estándar?
- 23. ¿cuál es la ventaja de la función estática?
- 24. por qué se muestra el error fatal en la función estática
- 25. ¿Debo usar la importación estática?
- 26. C# clase estática ¿por qué usar?
- 27. PHP: ¿por qué no pude declarar la variable const estática?
- 28. ¿La palabra clave estática en la declaración de la función puede faltar en la definición de la función?
- 29. Función miembro que devuelve una variable estática
- 30. ¿Por qué utilizar singleton en lugar de clase estática?
Esto no es una cuestión de la ventaja o desventaja. Además, ¿ha buscado en el sitio? – BoltClock
no necesita crear objetos para usar métodos estáticos ... ¡Y hay muchas preguntas relacionadas! – meze
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