8795 sujets

Développement web côté serveur, CMS

bonjour; Smiley biggrin

dans un fichier j'utilise plusieur fonction, ces fonction utilise deux variable commune, $a=65 et $b=79,

pour eviter d'initialiser ces deux variable à l'interieur de chaque fonction, je les es mis à la racine de mon fichier, juste aprés le <?php
et dans chaque fonction je les appels on mettant global $a; et global $b;
sauf il m'affiche rien du tout, on dirais qu'il recupere pas ces valeurs !!!!!
j'ai meme essayé de mettre $GLOBALS["a"] et $GLOBALS["b"] et ca ne marche pas!!!!

est ce parce qu'il plusieur fonction ds la meme fichier !!!! genre
<? php

$a=65;
$a=79;

function 1()
{
global $a;
global $b;

}

function 2()
{
global $a;
global $b;

}

function 3()
{
global $a;
global $b;

}


?>


merci pour vos propositions
Modifié par timo (20 Nov 2009 - 11:55)
Bonjour donc,

Il faut déclarer tes variables en globale avant de les initialiser, donc hors des fonctions, le faite de rappeller les variables avec global dans les fonction ne servant a rien si celle ci ne sont pas déja définit en global.
Genre, un truc du style devrait marcher :

global $a, $b;

$a=65;
$b=79;

function gg()
{
     global $a, $b;

     echo "a = $a et b = $b";
}

gg();



Et un truc assez pratique c'est que le mot clé global accepte plusieurs variables séparées par des virgules.
Le mot global en-dehors d'une fonction ne sert à rien, une variable est automatiquement globale si elle est déclarée en-dehors de toute fonction.
Modérateur
Hello,

QuentinC a écrit :
Le mot global en-dehors d'une fonction ne sert à rien, une variable est automatiquement globale si elle est déclarée en-dehors de toute fonction.


+1

De mémoire, une variable ou une fonction ou une classe ne doivent pas commencer par un nombre. logiquement, il y aurait dû avoir un message d'erreur.
Modifié par Nolem (20 Nov 2009 - 15:12)
H_leCentor a écrit :
Bonjour donc,

Il faut déclarer tes variables en globale avant de les initialiser, donc hors des fonctions, le faite de rappeller les variables avec global dans les fonction ne servant a rien si celle ci ne sont pas déja définit en global.
Genre, un truc du style devrait marcher :

global $a, $b;

$a=65;
$b=79;

function gg()
{
     global $a, $b;

     echo "a = $a et b = $b";
}

gg();



Et un truc assez pratique c'est que le mot clé global accepte plusieurs variables séparées par des virgules.



cette solution ne marche pas, j'ai une erreur quand je fais ca Smiley decu Smiley decu Smiley decu
Salut,

timo a écrit :
cette solution ne marche pas, j'ai une erreur quand je fais ca
Il n'y a pas de raison... quelle est l'erreur ?

Sinon +1 pour Quentin. Ce qui donne :
$a=65; 
$b=79; 
 
function additionne() { 
     global $a, $b; 
 	echo 'a + b = '. ($a + $b) ; 
} 

additionne(); 
Heyoan a écrit :
Salut,

Il n'y a pas de raison... quelle est l'erreur ?

Sinon +1 pour Quentin. Ce qui donne :
$a=65; 
$b=79; 
 
function additionne() { 
     global $a, $b; 
 	echo 'a + b = '. ($a + $b) ; 
} 

additionne(); 




ok, je viens de trouver la solution, c'est vrais que ce n'es pas normal que ca marche,
et ca ne marchais parce que ce fichier est appeler par un autre fichier, donc en fin de compte les variable indirectement ne ce trouve plus au sommet du fichier,
pour eviter ca je met tout en haut d'abord : global $a, $b;
et juste aprés je declare mes variables normalement $a, $b;
et ca marchce Smiley smile )))))
Hello,

et sinon, faut pas utiliser les variables globales, mais utiliser le passage de paramètres.

Voilà.