Est-ce possible de créer des variables globales dans une fonction ?

Est-ce possible de créer des variables globales dans une fonction ? - PHP - Programmation

Marsh Posté le 02-10-2008 à 18:49:04    

Bonjour,
 
J'aimerais savoir s'il est possible de créer des variables directement à partir d'une fonction ?
 
Voilà je m'explique par un exemple :
 
 

Code :
  1. function declare($arr, $create = true) {
  2.     if ($create) {
  3.       foreach ($arr as $key => $value) { $$key = trim($value); }
  4.     }
  5.     else {
  6.       foreach ($arr as $key => $value) { unset($$key); }
  7.     }
  8.   }
  9. declare($_POST);


 
Cette fonction ne marche pas mais autrement sans être dans une fonction cela crée des variables dynamiques de tout les éléments de la variable POST.
 
 
Avez-vous une idée si c'est faisable ? Merci!

Reply

Marsh Posté le 02-10-2008 à 18:49:04   

Reply

Marsh Posté le 02-10-2008 à 19:17:49    

oui c'est faisable.
Non ce n'est pas une bonne idée. Du tout.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-10-2008 à 21:55:53    

skeye a écrit :

oui c'est faisable.
Non ce n'est pas une bonne idée. Du tout.


 
Comment il faut procéder alors ?
Et pourquoi ce n'est pas une bonne idée ?

Reply

Marsh Posté le 02-10-2008 à 22:00:11    


 
Pas en créant des variables locales qui disparaissent à la fin de ta fonction, en tout cas.[:dawa]
 
 
 
Parce-que ça n'a aucun intérêt?
Parce-que tu ne contrôles pas l'input utilisateur?
Parce-que ton immonde syntaxe à coups de $$ pourrait être avantageusement remplacée par un bête tableau?
Parce-que les variables globales c'est le mal?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-10-2008 à 22:37:21    

skeye a écrit :


 
Parce-que ça n'a aucun intérêt?
Parce-que tu ne contrôles pas l'input utilisateur?
Parce-que ton immonde syntaxe à coups de $$ pourrait être avantageusement remplacée par un bête tableau?
Parce-que les variables globales c'est le mal?


 
Bien sûr que cela à un intérêt et au contraire crée un tableau n'a aucun intérêt, autant dans ce cas là utiliser le tableau disponible dans le $_POST ou le $_GET.
 
Si je veux faire ça c'est pour me simplifier la vie, j'aurais dans ma requête sql une syntaxe de ce type 'insert into matable ... values($data1, $data2)...' et non values('.$table['data1'].','.$table['data2'].')'...
 
C'est beaucoup plus simple et rapide sans tableau et en plus les noms des variables correspondent exactement aux noms des champs du formulaire donc voilà pourquoi je cherche à faire celà.

Reply

Marsh Posté le 03-10-2008 à 01:04:57    

register_globals = on;
 
mais à tes risques et périls


Message édité par Astroboy34 le 03-10-2008 à 01:05:11
Reply

Marsh Posté le 03-10-2008 à 07:29:31    

 

niveau sécurité c'est zéro, niveau lisibilité c'est zéro, et créer des variables globales dont on n'a pas vraiment besoin c'est ridicule.
Quant à register_globals, lolilol la bonne idée, c'est pas pour rien que c'est désactivé par défaut depuis des années.[:moule_bite]

Message cité 2 fois
Message édité par skeye le 03-10-2008 à 07:34:35

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-10-2008 à 09:08:50    

skeye a écrit :


 
niveau sécurité c'est zéro, niveau lisibilité c'est zéro, et créer des variables globales dont on n'a pas vraiment besoin c'est ridicule.
Quant à register_globals, lolilol la bonne idée, c'est pas pour rien que c'est désactivé par défaut depuis des années.[:moule_bite]


+1
 
le jour ou il y au bug (une variable qui ne contient pas la bonne valeur) tu vas passer des heures pour savoir ou est ce qu'elle a été modifiée  
et tu vas t'apercevoir que tu ne epux plus utiliser certain noms de variabels ( genre $id, $titre, ...  ) parcequ'ils sont globaux


---------------

Reply

Marsh Posté le 03-10-2008 à 11:17:48    

skeye a écrit :


 
niveau sécurité c'est zéro, niveau lisibilité c'est zéro, et créer des variables globales dont on n'a pas vraiment besoin c'est ridicule.
Quant à register_globals, lolilol la bonne idée, c'est pas pour rien que c'est désactivé par défaut depuis des années.[:moule_bite]


c'est pour ca que j'ai précisé, à tes risques et périls.
 
Ce n'est pas à faire évidemment, ca va à l'encontre de l'évolution de php qui se veut plus propre

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed