Aunque entiendo que la variable $this
no está disponible cuando se llama a un método en un contexto estático, para ayudar a desacoplar los componentes de mi aplicación de uno a otro, pensé que tendría sentido llamar a métodos estáticos desde una instancia. Por ejemplo:¿Llamar método estático de instancia en PHP, desaprobación futuro?
class MyExample{
private static $_data = array();
public static function setData($key, $value){
self::$_data[$key] = $value;
}
// other non-static methods, using self::$_data
}
// to decouple, another class or something has been passed an instance of MyExample
// rather than calling MyExample::setData() explicitly
// however, this data is now accessible by other instances
$example->setData('some', 'data');
¿Hay planes para despreciar este tipo de funcionalidad, o soy yo derecho a esperar apoyo a esta de cara al futuro? Trabajo con error_reporting(-1)
para asegurar un entorno de desarrollo muy estricto, y no hay ningún problema hasta el momento (PHP 5.3.6); sin embargo, soy consciente de que el reverso no se admite; es decir, los métodos de instancia se llaman estáticamente.
'$ example :: method()' buscará una clase con el nombre '$ example' evaluado, por lo que no creo que funcione (* salvo trucos con '__toString()' *) .. . ** o no? ** No esperaba que eso funcionara, sin embargo parece que sí. Sin embargo, tengo curiosidad, sintácticamente (y técnicamente) si esa es la mejor dirección. – Dan
bueno, espero que no vaya a ser obsoleto pronto ... va a romper un montón de código, ¡ja! – prodigitalson