Hace unos meses, leí acerca de una función de PHP que se llama cada vez que se llama un método estático, similar a la función __construct
que se llama cuando se instancia una instancia de clase. Sin embargo, parece que no puedo encontrar qué función se ocupa de esta funcionalidad en PHP. ¿Hay tal función?Alternativa de constructor para métodos estáticos en PHP
Respuesta
se puede jugar con __callStatic() y hacer algo como esto:
class testObj {
public function __construct() {
}
public static function __callStatic($name, $arguments) {
$name = substr($name, 1);
if(method_exists("testObj", $name)) {
echo "Calling static method '$name'<br/>";
/**
* You can write here any code you want to be run
* before a static method is called
*/
call_user_func_array(array("testObj", $name), $arguments);
}
}
static public function test($n) {
echo "n * n = " . ($n * $n);
}
}
/**
* This will go through the static 'constructor' and then call the method
*/
testObj::_test(20);
/**
* This will go directly to the method
*/
testObj::test(20);
Utilizando este código cualquier método que está precedido por '_' se desarrollará el 'constructor' estática en primer lugar. Este es solo un ejemplo básico, pero puede usar __callStatic
, sin embargo, funciona mejor para usted.
¡Buena suerte!
¿Podría __callStatic() ser el método al que se refiere? Acabo de encontrar esto en el Manual de PHP:
http://www.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.methods
Tal vez no, sin embargo, ya que parece ser un método mágico para manejar método estático indefinido llama ...
Me temo que este no es el método que estoy buscando. Gracias por su respuesta. –
El __callStatic() es llamado cada vez que llamas no existe el método estático de una clase.
Me encontré con este método en el manual de PHP hace algún tiempo, pero, como usted menciona, solo se llama cuando se llama a un método estático no existente. –
- 1. Métodos estáticos en PHP
- 2. php métodos estáticos pregunta
- 3. PHP llegar métodos estáticos
- 4. Desventajas de los métodos estáticos en PHP
- 5. Encadenamiento de métodos estáticos en PHP?
- 6. Métodos estáticos en ASP.NET
- 7. ¿Métodos en línea estáticos?
- 8. Inicializadores estáticos y métodos estáticos En Java
- 9. Herencia en métodos estáticos
- 10. Métodos estáticos en Java
- 11. ¿Cuándo debería escribir métodos estáticos?
- 12. Métodos estáticos vs métodos de instancia en C#
- 13. Los métodos estáticos en C++
- 14. métodos abstractos estáticos en C++
- 15. ¿Cuál es la alternativa correcta a la herencia de métodos estáticos?
- 16. Métodos estáticos en clases genéricas?
- 17. Herencia de PHP y métodos y propiedades estáticos
- 18. métodos estáticos abstractas en Scala
- 19. ¿Métodos estáticos en módulos ruby?
- 20. F # Métodos estáticos privados
- 21. estáticos y no estáticos Llamada en PHP
- 22. php clases e interfaces abstractas que implican métodos estáticos?
- 23. Métodos estáticos y herencia en Coffeescript
- 24. métodos estáticos refactoración en los métodos de instancia en Eclipse
- 25. Además de singletons, ¿cuáles son algunas de las razones convincentes para usar métodos estáticos en PHP?
- 26. Uso de métodos estáticos privados
- 27. Ventajas de las clases con solo métodos estáticos en C++
- 28. Métodos estáticos públicos vs métodos públicos
- 29. definir montón de métodos estáticos en C++
- 30. Controladores ASP.NET MVC métodos estáticos
No es lo que esperaba, pero creo que es lo más cercano a lo que estoy buscando. Gracias, Adi. –
No hay problema, espero haber ayudado. –