mettre un variable defined en global dans une function

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mettre un variable defined en global dans une function

Re: mettre un variable defined en global dans une function

par sirakawa » 18 févr. 2012, 23:47

La fonction test ne montre que la différence de comportement entre variable et constante dans une fonction, et l'intérêt de global, ce que le question initiale montrait que tu n'avais pas compris.
Elle montre au passage que les variables déclarées dans une fonction lui sont locales et inconnues du programme appelant, ce qui est assez important pour une fonction

Re: mettre un variable defined en global dans une function

par two3d » 17 févr. 2012, 10:46

D'accord mais je vois pas trop l'intérêt de ta function test() là

déclarer dans une fonction une variable globale

par sirakawa » 17 févr. 2012, 08:41

au passage,
define : définit une constante, pas une variable.
<?PHP
define ("CO", 12);
$va_g = 12;
$va =1;
function test ()
{
	global $va_g;
	// commenter et décommenter la ligne ci-dessous
	$va =0;
	// commenter et décommenter la ligne ci-dessous	
	//CO = 14;
	// commenter et décommenter la ligne ci-dessous	
	//define ("CO", 241);
	echo '<br /> const: ', CO, ' va_g: ', $va_g, ' va : ' , $va;
	$va = $va_g+2;
	echo ' <br />const: ', CO, ' va_g: ', $va_g, ' va : ' , $va;
	$va_g = $va_g+4;
	echo ' <br /> const: ', CO, ' va_g: ', $va_g, ' va : ' , $va;		
}
echo ' <br /> avant appel de fonction, const: ', CO, ' va_g: ', $va_g, 'va : ' , $va;		
test();
echo '<br />après appel de fonction const: ', CO, ' va_g: ', $va_g, 'va : ' , $va;		
?>

Re: mettre un variable defined en global dans une function

par two3d » 17 févr. 2012, 00:33

en effet, pas besoin de le passer en global, il le reconnait sans, je viens de testé
<?php
define("MA_VAR","coucou");
function test() {
	echo MA_VAR;
}
test();
?>
Merci

Re: mettre un variable defined en global dans une function

par Thibaud C » 17 févr. 2012, 00:06

define("MA_VAR_DEFINED","coucou");
$unevar=MA_VAR_DEFINED
function mafunction() {
  global $unevar;
  ...
}
?
Mais il me semble que les constantes sont accessibles depuis les fonctions étant donné que les constantes sont du "superglobal" :/

mettre un variable defined en global dans une function

par two3d » 16 févr. 2012, 23:28

Bonsoir,

comment mettre une variable qui est préalablement définie par la function define() en global dans une fonction ?

Exemple:
define("MA_VAR_DEFINED","coucou");
function mafunction() {
  global MA_VAR_DEFINED;
  ...
}
l'erreur retournée est:

Code : Tout sélectionner

Parse error: parse error, expecting `T_VARIABLE' or `'$'' in...