Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/10/2006, 17h09   #1
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Par défaut Variables à portée limitée

Une fonction contient un include_once('fichier.php');

Je désire que les variables contenues dans cet include (et donc le include) ne soient plus connues lors de la sortie de la fonction PHP.

En fait, le fichier appelé par l'include contient des variables de même nom qu'un autre include appelé plus tard, donc il y a des erreurs dans l'exécution du script. Pourtant, il est important que les noms soient les mêmes car elles sont appelées suivant le contexte à partir d'un include ou d'un autre (dictionnaire).

Comment faire ?

Merci.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 17h41   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Si ces variables sont utilisées dans une fonction, pas de problème : elle n'ont par défaut qu'une portée locale.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 19h28   #3
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par vg33
Si ces variables sont utilisées dans une fonction, pas de problème : elle n'ont par défaut qu'une portée locale.
Tu as bien raison, mais mon soucis est que ces variables sont appelées via un include.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 19h33   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Il te reste la possibilité d'initialiser toutes les variables en début (ou en fin) de chaque script inclus. Comme ça, plus de problème de collisions entre variables.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 19h57   #5
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Bien sûr, c'est une solution, mais pas la meilleure.

Merci.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 20h33   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Tu en connais une autre ?
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 20h57   #7
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par vg33
Tu en connais une autre ?
Pas encore, mais je cherche au cas où, car alors je pourrais prendre la meilleure des solutions que j'aurais à ma disposition.

En fait, je ne m'arrête jamais à la première solution trouvée, et j'essaie toujours de trouver LA MEILLEURE solution à mon problème.

A+
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 23h11   #8
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
C'est une bonne pratique Un peu longue, parfois
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 23h34   #9
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par vg33
C'est une bonne pratique Un peu longue, parfois
Un peu longue ? Non, pas sur du moyen ou long terme.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2006, 00h03   #10
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
je ne sais pas si cela t'aide, mais comme dit précédemment, dans une fonction, elles restent locales.

comme tu fais un include dans plusieurs fichiers, et tant qu'à modifier ton code, peut-être as-tu intérêt à changer ton include par une fonction. Cela dépend du nombre de variables que tu désires rester locales et du nombre de variables que tu souhaites partager avec la fichier appelant
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2006, 09h59   #11
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Pour cette fois, j'ai re-déclaré mes variables en local.

La prochaine fois, j'utiliserais l'objet pour éviter cela.

Merci.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h56.


 
 
 
 
Partenaires

Hébergement Web