Bonjour,
Voila je rencontre un petit problème avec mon code. En effet j'ai un probleme avec le constructeur de ma class.
Je crer ma class PHP.
<?php
class education {
$variable;
function __construct(){
//wow tu es là je te donnes une variable
$present = "oui";
$this->variable = $present;
}
function present(){
return $variable;
}
}?>
Je veux effectuer un traitement dans le constructeur (function __construct()) qui donne lieu a des variables, puis les recuperer a travers des fonctions dans cette même class. Par exemple une requette SQL dans le constructeur et chaque fonction permet de retourner une valeur de la requette. Comme par exemple :
Dans un projet d'une classe d'éléve dans le constructeur on insert l'iD de l'eleve.
Le constructeur reçois l'iD de l'elever et le cherche en base de donnée. Puis une fonction GetNom dans cette class permettera d'obtenir le nom de l'éleve, une fonction GetPrenom permetera d'obtenir son prénom, une fonction SetNom permetera de modifier le nom,..
J'obtient une erreur que je n'arrive pas résoudre.
=> Call to a member function present() on null in monfichier.php
P.S : __je tient à garder le principe dit objet. Si cela n'est pas la methode a adopter merci de m'indiquer que
je fait fausse route et de m'indiquer la bonne.
Si une personne connait la solution, vous pouver me joindre par mail également joszer at gmail.com
En vous remercient par avance,
Seul la déclaration peut changer la porter d'une variabe.
Attention à la portabilité des variable, vous confondez la portabilité à la classe et la portabilité dans une fonction.
Dans votre code $variable dans la fonction présent est null et NE VAUT PAS $present. Faite attention à cela.
<?php
class education {
private $variable; // Tu dois préciser la portée
public function __construct(){ // ici aussi
//wow tu es là je te donnes une variable
$present = "oui";
$this->variable = $present;
}
function present(){
return $variable;
}
} // pas de ?> à la fin
Bonjour,
Vous demander à retourner la variable $variable dans la fonction present(). Or cette varible est interne à cette fonction et n'existe pas ailleurs.
Je pense que vous souhaitez retourner $variable déclarer plus haut et dans ce cas là il faut faire un :
return $this-variable;
@intelligid : Pas besoin de fermer un fichier php s'il n'y a rien après.
Je vous remercie pour vos réponses en revanche cela ne fonctionner toujour pas. En effet @Carouge10 il y a une variable dans la class nommer $variable. puis dans le constructeur cette variable prend la valeur de $present. puis la fonction present() retourne la valeur $vaiable qui vaut $présent. Je sais cela parait compliqué mais je suis sur c'est tout simple a faire.
Il faut un moyent d modifier une variable private,protected ou public dans la class avec la fonction __construct().
Merci par avance,
Vous allez me tuer, je m'en mords encore les doigts. Un porbleme lier a la casse. ;(( je vous promet j'ai pas fait exprés. Mais @Carouge10 ce que tu m'as dit m'as aider. merci à toi.