PDA

Visualizza la versione completa : Fatal error: Cannot redeclare class - come risolvere


uMoR
20-06-2006, 02:56
Improvvisamente mi appare questo errore:

"Fatal error: Cannot redeclare class mod_db in xxxxx on line 43"

Alla linea 43 c':
class mod_db {

La cosa strana che se riavvio apache, al primo caricamento della pagina non mi da errore, dal secondo in poi si.. Non capisco cosa possa essere..

Idee ?

gianiaz
20-06-2006, 10:00
non credo dipenda da apache, probabilmente la carichi pi volte.

Prova a vedere dove includi il file, se puoi evita, se non puoi sostituisci il require con require_once (o include con include_once).

ciao

Emulman
20-06-2006, 10:13
l'errore chiaro: la classe mod_db stata dichiarata due volte il che vietato. Quindi controlla che non ci sia qulcosa tipo

$db = new mod_db();

ripetuto due volte!

gianiaz
20-06-2006, 10:15
Originariamente inviato da Emulman
l'errore chiaro: la classe mod_db stata dichiarata due volte il che vietato. Quindi controlla che non ci sia qulcosa tipo

$db = new mod_db();

ripetuto due volte!

Hai cominciato bene ma poi hai sbagliato.

Una cosa dichiarare una classe (cosa che fai quando includi il file che appunto la dichiara), e un conto istanziare una classe (cosa che hai fatto tu nel tuo esempio).
E' ovvio che si possono fare Nmila istanze ( la base della programmazione a oggetti), ma non si possono dichiarare 2 oggetti con lo stesso nome.

ciao

uMoR
20-06-2006, 11:06
Non ho dichiarato 2 oggetti con lo stesso nome :(
Per questo non capisco..

luca200
20-06-2006, 11:28
Originariamente inviato da uMoR
Non ho dichiarato 2 oggetti con lo stesso nome :(
Per questo non capisco..
Si espresso male.
Hai la stessa classe dichiarata due volte.

uMoR
20-06-2006, 12:32
Ripeto che non ho dichiarato 2 volte la stessa classe !

gianiaz
20-06-2006, 12:37
ti faccio un esempio tipico di errore del genere:

pagina index


require("classe1.php");
require("classe2.php");


classe2.php


require("classe1.php");


altre soluzioni non ne ho, l'errore piuttosto esplicito.

ciao

Loading