Utiliser une variable à partir de __construct() dans d'autres méthodes
J'ai défini une nouvelle variable dans __construct()
et je veux l'utiliser dans un autre function
de cette class
.
Mais ma variable est vide dans l'autre fonction!
c'est mon code:
class testObject{
function __construct() {
global $c;
$data = array("name"=>$c['name'],
"family"=>$c['family']);
}
function showInfo() {
global $data;
print_r($data);
}
}
- avez-vous vraiment regardé : uk.php.net/manual/en/language.oop5.php ?
- Pas une réponse, mais connexes: stackoverflow.com/questions/11923272/...
- L'utilisation des propriétés de la classe au lieu de
global
: php.net/manual/en/language.oop5.properties.php à l'Aide deglobal
est (presque?) jamais une bonne solution. - Connexes: stackoverflow.com/questions/2206387/what-is-a-class-in-php/...
Vous devez vous connecter pour publier un commentaire.
Déclarer la variable
$data
mondial à l'intérieur du constructeur:Ensuite, il sera visible dans d'autres fonction.
Noter que utilisation de variables globales est fortement déconseillé de, envisager de modifier votre classe à l'utilisation de variables de classe avec des getters+setters.
Un plus bonne façon serait d'utiliser
Aussi, envisager de séparer les champs de données pour séparer les variables de classe, comme suit. Ensuite, vous avez un typique, propre classe de données.
Et vous pouvez même construire cet objet avec les données de votre variable globale
$c
jusqu'à ce que vous elimitate à partir de votre code:Vous pouvez le faire de cette façon. Au lieu de déclarer
$data
commeglobal
variable déclarer quepublic
ouprivate
ouprotected
variable à l'intérieur de la classe, selon votre utilisation. Puis définissez les données à l'intérieur de_construct
.L'aide globale à l'intérieur d'une classe n'est pas une bonne méthode. Vous pouvez utiliser les propriétés de la classe.