Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 21/09/2011, 12h34   #1
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
Par défaut Création de variables dans une fonction

Bonjour

J'ai un tableau associatif
Code :
$animal = ("siamois" =>1, "chien" => 2 //etc)
J'aimerai convertir chaque clef du tableau (ici siamois et chien), en variable et sortir chaqune de ces variables de ma fonction

ma page php d'appel de fonction

Code :
1
2
3
4
 
gertrude();
echo $siamois;
echo $chien
ma page de fonction

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
function gertrude()
{
	if(isset($animal))
	{
		foreach($animal as $espece => $valeur)
		{
			$$espece = "":
			$$espece = $valeur
		}
		return $$chat;
	}
}
que pouvez-vous me conseiller?
__________________
_____________________________________________
Tours Football Club - Turonorum Civitas Libera
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 12h42   #2
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Il y a une fonction native à PHP qui fait ce que tu veux, j'arrive juste pas à remettre la main dessus. Mais honnêtement, je te le déconseille plus que sincèrement. C'est très dangereux.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne.
Le bouton ne masse pas les pieds, mais ça aide la communauté.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 13h29   #3
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
Citation:
Envoyé par gwinyam Voir le message
Mais honnêtement, je te le déconseille plus que sincèrement. C'est très dangereux.
ah? en quoi?
__________________
_____________________________________________
Tours Football Club - Turonorum Civitas Libera
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 14h01   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par gwinyam Voir le message
Il y a une fonction native à PHP qui fait ce que tu veux, j'arrive juste pas à remettre la main dessus.
Voilà, voilà : extract()

Pour la dangerosité, il suffit de lire l'avertissement en gras rouge sur la page d'extract.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 14h43   #5
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
Citation:
Envoyé par rawsrc Voir le message
Voilà, voilà : extract()
Merci !

Citation:
Envoyé par rawsrc Voir le message
Pour la dangerosité, il suffit de lire l'avertissement en gras rouge sur la page d'extract.
Ah, je déçu, j'ai cru que ça pouvait exploser ... !!!!
Pour mon tableau, les clefs viennent de mon code, par contre les values viennent de $_POST ... Je sais qu'un code n'est jamais sur, mais je fais des vérifications avant. Ca pose encore problème?

Je recommence :

ma page d'appel de fonction

Code :
1
2
3
4
 
gertrude();
echo $siamois;
echo $chien
ma page de fonction

Code :
1
2
3
4
5
6
7
8
9
 
function gertrude()
{
	if(isset($animal))
	{
		extract($animal,EXTR_OVERWRITE)
		//return ??
	}
}
je ne suis pas sur de mon return par contre
__________________
_____________________________________________
Tours Football Club - Turonorum Civitas Libera
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 15h56   #6
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
T'as pas assez lu la doc alors. Tu t'es concentré sur le danger de cette méthode sans faire assez attention à son fonctionnement

En l'occurence ici, Gertrude dégage :

Code :
1
2
3
extract($tonTableauAssociatif);
echo $siamois;
echo $chien
Quand au fait que les données viennent de $_POST, ça me fait violemment penser au comportement de register_globals. Contrôles ou pas, ça reste une mauvaise idée à mon sens.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne.
Le bouton ne masse pas les pieds, mais ça aide la communauté.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 16h03   #7
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
Que me conseilles-tu alors?
__________________
_____________________________________________
Tours Football Club - Turonorum Civitas Libera
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 16h37   #8
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
D'utiliser ton tableau normalement. Tout simplement.

Code :
1
2
echo $tonTableauAssociatif['taCle'];
echo $tonTableauAssociatif['uneAutreCle'];
C'est propre, pas moins efficace et ça évite tous les risques que peut poser extract.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne.
Le bouton ne masse pas les pieds, mais ça aide la communauté.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 17h37   #9
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
bin oui après tout, pourquoi ne pas réalisé un truc simple ?
__________________
_____________________________________________
Tours Football Club - Turonorum Civitas Libera
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h02.


 
 
 
 
Partenaires

Hébergement Web