Tous,L'appel PHP à la fonction statique échoue
Je reçois une erreur avec le code ci-dessous. Voici le message d'erreur que je reçois:
Notice: Undefined variable: userDAO in C:\wamp\www\Projetv0.2\Model_User.php on line 15
puis
Fatal error: Call to a member function checkRecordExists() on a non-object in C:\wamp\www\Projetv0.2\Model_User.php on line 15
Le code correspondant est ci-dessous. Ce que j'essaie de faire avec le code est d'avoir une classe unique (DAO_DBrecord
) pour accéder à plusieurs tables dans un db. Dans le cas ci-dessous, je veux accéder à ma table users
. Pour ce faire, j'ai créé une fonction statique spécifique createUserDAO
dans la classe DAO_DBrecord
qui appelle le constructeur avec le nom de la table de droite, users
. Cependant, cela ne fonctionne pas, et je ne peux pas comprendre pourquoi.
Model_User.php:
<?php
require_once('Class_DB.php');
require_once('DAO_DBrecord.php');
class Model_user{ // Represents a connection to the users table in the DB
private $db;
private $userDAO;
function __construct($db){
$this->db=$db;
$userDAO=DAO_DBrecord::createUserDAO($this->db);// static function - calls constructor w/ 'user' table name parameter
$this->userDAO=$userDAO;
}
function userInfoExists($userInfo, $colName){
return $userDAO->checkRecordExists($userInfo, $colName);
}
//Other stuff
}
?>
DAO_DBrecord.php:
<?php
require_once('Class_DB.php');
class DAO_DBrecord {
private $db;
private $table;
private function __construct($db,$table){
$this->db=$db;
$this->table=$table;
}
public static function createUserDAO($db) {
return new DAO_DBrecord($db, 'users');
}
//Other stuff
}
?>
Merci à tous pour votre aide!
JDelage
Doh ... Merci. Ce sont toujours les erreurs les plus stupides qui m'arrivent. – JDelage