Variables de classe dans une fonction
Résolu
Bonjour,
j'essaye de faire un code tout simple en php, je créé une classe user qui a pour paramètre $id (l'identifiant de l'utilisateur). Et j'ai une fonction qui permet de récupérer son nom en allant chercher dans ma bdd avec son id.
Alors j'ai écris ça :
Mais ça me renvoit une erreur dans getName() comme quoi la variable id utilisée dans la requête n'existe pas...
Voyez-vous l'erreur que j'ai fait ? (surement énorme je sais...)
Merci d'avance !
j'essaye de faire un code tout simple en php, je créé une classe user qui a pour paramètre $id (l'identifiant de l'utilisateur). Et j'ai une fonction qui permet de récupérer son nom en allant chercher dans ma bdd avec son id.
Alors j'ai écris ça :
class connect
{
public function connexion()
{
try
{
$bdd = new PDO('mysql:host=localhost;dbname=fame', 'root', ''); // Base localhost
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
if($bdd)
{
return $bdd;
}
}
}
class user
{
public $id;
public function __construct($id)
{
$this->$id = $id;
}
public function getName()
{
$name = "";
$c = new connect();
$bdd = $c->connexion();
$req = $bdd->prepare('SELECT Nom, Prenom FROM users WHERE
ID=? LIMIT 1');
$req->execute(array($this->$id));
$donnees = $req->fetch();
if($donnees)
{
$name = ''.$donnees['Prenom'].' '.$donnees['Nom'].'';
}
else
{
$name = "Bitch";
}
return $name;
}
}
$u = new user(1);
echo $u->getName();
Mais ça me renvoit une erreur dans getName() comme quoi la variable id utilisée dans la requête n'existe pas...
Voyez-vous l'erreur que j'ai fait ? (surement énorme je sais...)
Merci d'avance !
3 réponses
-
ModérateurBonjour
essaye $this->id (sans le $ devant id )
-
Il n'y a plus d'erreur mais ça me renvoit le mot anglais très mal poli que j'ai oublié d'enlever de mon code... Autrement dit, il me dit que la réponse de la requête est vide, alors que ce n'est pas le cas dans ma bdd...
-
Autant pour moi, je n'avais pas fait la même modif dans le contrôleur...
Ca fonctionne merci !