[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
A voir également:

5 réponses

ftiercel Messages postés 119 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 8 février 2014 61
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 119 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 8 février 2014 61
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 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
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