Version complète: sur le forum Webmaster Hub : Probleme de dependance circulaire.
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
destroyedlolo
Bonjour,

J'ai plusieurs class qui sont definies chacune dans un fichier different, ce qui donne niveau code :

CODE
<?php
/* Page.inc */
require_once('Albumine/lst_webobj.inc');
require_once('Albumine/encart.inc');

class page extends lst_webobj {
[...]
function charge( $dir=false ){
[...]
$c = new encart($id, $this);
$this->ajt_obj($c);
[...]
}
}
?>


et

CODE
<?php
/* encart.inc */

require_once('Albumine/page.inc');
class encart extends page {
[...]
}


Comme on peut le voir, encart est une classe qui herite de page mais page contient une fonction qui permet de charger des sous-objets qui peuvent etre de type encart.
Bref, le probleme est que le
CODE
require_once('Albumine/encart.inc');
de page.inc echoue car il me dit que la class page n'existe pas (normale, elle est definie par la suite).

En C++, je rajouterai simplement un
CODE
class page;
au debut de encart.inc mais ca ne fonctionne pas en PHP.

Des idees ?

Bye

Laurent
rdd
Salut,

Si tu es en PHP5, tu as la fonction __autoload qui te permet de faire exactement ce que tu veux faire.

CITATION
En PHP 5, ce n'est plus nécessaire. Vous pouvez définir la fonction __autoload() qui va automatiquement être appelée si une classe n'est pas encore définie au moment de son utilisation. Grâce à elle, vous avez une dernière chance pour inclure une définition de classe, avant que PHP ne déclare une erreur.


destroyedlolo
Merci rdd, ca fonctionne tres bien.

Bye

Lolo
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.