OVH Cloud OVH Cloud

variables globales?

15 réponses
Avatar
BaKa
Salut,

Voila, j'aimerais créer des variables globales pour les utiliser dans
plusieurs fonctions ... (sans a chaque fois redéfinir globale $var1)

pour le moment je dois faire ça :

$var1 = "ma var";

function test1(){
globale $var1;
}

function test2(){
globale $var1;
}

Quand il n'y a qu'une variable et 2 fonctions ca va mais je dois faire ca
pour un peu + de fonction et j'aimerais savoir si il y a moyen de définir
une fois pour toute une variable globale.

Merci ;)

--
# Games Screenshots
http://www.games-screenshots.t2u.com

5 réponses

1 2
Avatar
Jean-Marc Molina
On trimbale rarement une variable sur 15 fonctions :)
L'essentiel c'est de savoir qu'une fonction fait, les paramètres qu'elles
utilisent...
Avec des globales partout tu ne contrôles plus rien, pour une petite
application c'est pas trop grave mais pour moyenne application ou si vous
travaillez à plusieurs, il faut oublier.
Je ne parle pas forcément de conception objet, ça reste des fonctions.

Dernier exemple si tu veux que quelqu'un utilise ta fonction, comment la
documentes-tu ?
Ça se fait de dire qu'une fonction utilise un variable globale comme
paramètre ? :D

Il faut comparer les 2 méthodes pour se faire une idée et comprendre que les
globales ne sont que les épines du rosier :D
Et j'en ai eu des années dans les pieds alors maintenant je sais ce que
c'est :). Mais il faut passer par là :p

JM

--
Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)
Avatar
Jean-Marc Molina
Je voulais dire qu'avant on utiliser $var et pas $_POST, il faut encore
faire un global $_POST mais perso je passe le POST en paramètre, enfin la
var qu'il me faut : ma_fonction ($_POST ['var']); et pas :
function ma_fonction ()
{
global $_POST;

...$_POST ['var'];
}

Le contrôle :)
JM

--
Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)
Avatar
John GALLET
On 2 Oct 2003, Jean-Marc Molina wrote:

On trimbale rarement une variable sur 15 fonctions :)
Bien vu, j'ai répondu à côté de la plaque : je voulais dire une fonction

avec 15 paramètres, pas un arbre d'appel de 15 fonctions empilées.

JG

Avatar
John GALLET
Je voulais dire qu'avant on utiliser $var et pas $_POST, il faut encore
faire un global $_POST
Mais c'est bien ce que je te reproche.

Fais toi même le test avec un script de 10 lignes :
<?php
function toto()
{
echo $_REQUEST['tutu'];
}
toto();
?>
appelé par http://.../toto.php?tutu=yes je te garantis que yes va
apparaître.
Et d'ailleurs il suffit de lire le manuel pour le savoir :
http://fr2.php.net/manual/en/language.variables.predefined.php


mais perso je passe le POST en paramètre, enfin la
var qu'il me faut : ma_fonction ($_POST ['var']);


Je préfère aussi mais me concernant de toutes façons il n'y dans un site
complet qu'une seule occurence de la chaîne $_REQUEST : dans ma fonction
de filtrage systématique de tous les arguments reçus.

a++
JG

Avatar
John GALLET
Bonjour,

la meilleur methodologie
Méthodologie, n'ayons pas peur des grands mots. Tu vas me plaire toi.


Pis les variable $_POST[], $_GET[], je pense vous 2 avant ne savez pas trop
c quoi.
Non seulement je sais ce que c'est mais en plus moi j'cause la

France.

En fait ils sont global,
Non, ils sont "superglobaux". Cf le man. Inutile d'employer le mot clef

"global" avec eux.

mais c'est que on utilise ca plutot que
global et $_GLOBAL[] afin de programmer plus securitairement et plus propre.
Non totalement pour global $toto;

Pour $GLOBALS oui et non. Oui partiellement en register_globals=On, non
complètement en register_globals=Off.


Là en revanche tu dis des âneries, les variables passées en arguments
Je parlais bien entendu des arguments http...



a++
JG


1 2