je viens vous donner une petite astuce que j'ai bidouillé en faisant des expérimentations :
j'ai pour les pages de mon site plusieurs classes, une classe page qui sert à la génération de la présentation
des fonctions pour générer le contenu en fonction de la page appelée
une classe de connexion à la base de données
au début de chaque page, je créé une instance de la classe bdd pour avoir une connexion au serveur mysql
dans chaque instance des autres classes, je veux réutiliser cette même instance de base de données pour plusieurs raisons comme un compteur du nombre de requêtes envoyées ...
mais en php il n'est pas possible de faire
<?php
class page
{
global $bdd; // instance de la classe bdd
.....
}
$bdd=new mysql();
$bdd->connexion('serveur','login','mdp');
$bdd->selection('bdd');
$page=new page();
...
?>
voici une petite astuce qui va nous permettre de contourner ce problèmepour ma classe page, je défini le constructeur
<?php
class page
{
var $mysql;
function __construct() // constructeur
{
global $bdd;
$this->mysql=&$bdd;
}
?>
de cette manière je pourrais réutiliser n'importe quelle variable globale, que ce soit une instance, un tableau ...car je fais un passage d'adresse : je dis où se trouve cette variable globale à l'ensemble de l'instance de la classe
voila, n'hésitez pas à poser des questions
et si un mammouth passe ici, qu'il n'hésite pas à me corriger
++