Stavo lavorando su un'applicazione Web PHP. Ho usato un nuovo datagrid da gurrido.net e ha funzionato bene sul locale, ma quando si invia al server, ottengo il seguente errore:Impossibile eseguire il metodo non statico - ERRORE FATALE
Fatal error: Cannot make non static method Base::getClassName() static in class Singletons in /var/www/reskb/phpinc/Singletons.class.php on line 84
Nella mia vecchia versione in cui non ho usato la griglia , Ho funzionato Ecco il mio codice di file di singletons.class.php:
<?
class Singletons extends Base {
var $objects = array();
function getClassName() {
return 'Singletons';
}
function _instance() {
static $_instance = NULL;
if ($_instance == NULL) {
$className = Singletons::getClassName();
$_instance = new $className();
}
return $_instance;
}
function put($object) {
$self = Singletons::_instance();
$className = $object->getClassName();
$self->objects[$className] = $object;
}
function get($className) {
$self = Singletons::_instance();
if(!empty($self->objects[$className]))
return $self->objects[$className];
else return '';
}
}
Singletons::_instance();
?>
È necessario chiamare la funzione getClassName utilizzando l'oggetto o definire getClassName come statico. –
È necessario anche inserire il codice per la classe 'Base'. –