Actualmente el uso de una gran plataforma en PHP¿Cómo puedo resolver "método xxx no estático: xxx() no debería ser llamado estáticamente en PHP 5.4
El servidor está alojado en recientemente se ha actualizado a PHP 5.4?. .
Dado que, he recibido muchos mensajes de error como:
[SAT pueda 19:04:41 26 de 2012] [error] estrictos estándares de PHP: método no estático Config :: getData() no debe llamarse estáticamente, asumiendo $ this desde un contexto incompatible en /xxx/Config.inc.php en la línea 35
El ejemplo de método se define como (nota la falta de palabra clave 'estática'):
function &getData() {
$configData =& Registry::get('configData', true, null);
if ($configData === null) {
// Load configuration data only once per request, implicitly
// sets config data by ref in the registry.
$configData = Config::reloadData();
}
return $configData;
}
Esto no causó un problema antes, y supongo que los mensajes de error (que causan la aplicación se bloquee) puede estar relacionado con la actualización reciente a PHP5.4.
¿Existe una configuración de PHP que pueda modificar para 'ignorar' la falta de palabra clave estática?
Crea una instancia de Config y llama a getData() desde ella – Musa
¿Podrías incluir una muestra del contenido de '& getData()'? Específicamente, qué es exactamente lo que se devuelve y cómo. –
Agregué el contenido de & getData() a la pregunta original - Debo enfatizar que este error solo se ha presentado desde la actualización a 5.4, así que estoy seguro de que la lógica es buena – kaese