Ok, c'est tellement bizarre !!! Je cours PHP Version 5.1.6 quand j'essaie et exécute le code ci-dessous il donne une erreur fatale d'un objet qui n'a pas été instancié. Dès que je ne commente pas cette ligne de code // $ cb_db = new cb_db (USER, PASSWORD, NAME, HOST); tout fonctionne. Même si j'ai déclaré l'objet $ cb_db global dans la méthode. Toute aide serait grandement appréciée.Appel à une requête de fonction membre() sur un non-objet
require_once (ROOT_CB_CLASSES. 'Db.php');
$cb_db = new cb_db(USER, PASSWORD, NAME, HOST);
class cb_user {
protected function find_by_sql($sql) {
global $cb_db;
//$cb_db = new cb_db(USER, PASSWORD, NAME, HOST);
$result_set = $cb_db->query($sql);
$object_array = array();
while($row = $cb_db->fetch_array($result_set)) {
$object_array[] = self::instantiate($row);
}
return $object_array;
}
}
Pourquoi utiliseriez-vous global dans une classe? s'étendre semble beaucoup plus approprié, vous pouvez également passer l'objet en tant que paramètre ... – Dormilich
Vous n'avez pas commencé à utiliser des classes pour se débarrasser des globals? –