Ceci est mon code:AOP objet vide
class DB {
static $instance;
function get() {
if (self::$instance === null) {
self::$instance = new PDO('mysql:host=localhost;dbname=forum', 'root', 'root');
}
return self::$instance;
}
function getAllUsers() {
$users = array();
$sql = "SELECT * FROM users";
foreach (self::get()->query($sql) as $row) {
$users[] = new User($row);
}
return $users;
}
}
Et maintenant, je vous appelle la fonction getAllUsers ici:
class App {
function showUsers() {
$users = DB::getAllUsers();
}
Sauf sa me donner une erreur:
Warning: Invalid argument supplied for foreach()
Quand je fais var_dump
sur self::get
im obtenir un bool(false)
que quelqu'un peut me dire ce que je fais mal?
Je voudrais souligner que var_dump (self :: get()) affiche objet (AOP) # 2 (0) {} –
Pourquoi n'êtes-vous pas [ 'essayer/catch'ing et déclencher des exceptions] (http://stackoverflow.com/questions/8343141/quoi-la-bonne-façon-d'utiliser-un-nouveau-pdo-dans-une-classe-contexte)? Vous ne donnez aucune route à votre classe pour échouer gracieusement ici. –
Si vous appelez votre instance de classe en utilisant 'self :: get()', alors 'get()' devrait être déclaré 'static'. – Tchoupi