[PHP] petite question sur les classes

Résolu/Fermé
fraid
Messages postés
42
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
29 mars 2009
- 21 août 2008 à 11:56
fraid
Messages postés
42
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
29 mars 2009
- 21 août 2008 à 13:52
Bonjour,

j'ai un petit soucis je ne sais pas comment faire voici un exemple :

<?
$mavar="par défaut";

class test
{

function test ($mavar)
{
$this->vari="$mavar";
}

}

$c = new test;
?>

et si je code echo $c->vari il n'y a rien...autrement dit ma variable $mavar (définie en début de page) ne passe pas dans la classe...mais pourquoI / comment contourner le problème ???

merci d'avance

5 réponses

ftiercel
Messages postés
118
Date d'inscription
dimanche 24 septembre 2006
Statut
Membre
Dernière intervention
8 février 2014
59
21 août 2008 à 12:21
Vu comme ça, la variable que tu définis en haut et celle que tu utilises dans ta classe sont totalement indépendantes. Voilà ce qu'il faudrait écrire pour que la variable soit prise en compte :

<?
class test
{

function test ($mavar)
{
$this->vari="$mavar";
}

}

$c = new test("par défaut");
?>
0
fraid
Messages postés
42
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
29 mars 2009
5
21 août 2008 à 12:41
merci de la réponse.
dans la mesure ou j'aurai pas mal d'éléments par défauts (mais tous variables) il n'y a pas un moyen plus simple pour appeler ma classe ? (que à chaque fois de repasser toutes mes variables dans l'appel...)
0
ftiercel
Messages postés
118
Date d'inscription
dimanche 24 septembre 2006
Statut
Membre
Dernière intervention
8 février 2014
59
21 août 2008 à 13:21
En fait, là, c'est plus qu'un appel, c'est une instanciation d'objet de la classe. En d'autres termes, à chaque fois que tu écris un new, tu crées de nouvelles données. Peut-être devrais-tu utiliser des fonctions en dehors des classes.
0
Flachy Joe
Messages postés
2095
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
11 mars 2022
252
21 août 2008 à 13:27
Si tu défini tes valeurs par défaut dans un tableau, tu n'as plus qu'une variable à passer à la création.

class test
{
function test ($tabl)
{
$this->vari=$tabl['$mavar'];
}
}

$default['mavar'] = "defaut";
$default['autrechose'] = "Bonjour";

$c = new test($default);

Tu peux même parcourir le tableau pour créer toutes les variables de ta classe en fonction des clés :

function test ($tabl)
{
foreach ($tabl as $key => val)
$this->$key=$val;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fraid
Messages postés
42
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
29 mars 2009
5
21 août 2008 à 13:52
merci pour l'idée je n'y avais pas pensé !!
bonne journée à tous les deux !

Frederic
0