IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] rendre une variable local (fonction) globalement


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut [Tableaux] rendre une variable local (fonction) globalement
    Bonjour,
    Je suis un peu géné de poser cette question, mais....

    J'ai une fonction et dans cette fonction, la valeur d'une variable est définie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function ma_fonction(){
    $a=1;
    $b=2;
    $c=$a+$b;
    }
     
     
    $pages = 'SELECT fd_desc_folder, fd_desc_sub_folder FROM tb_pages WHERE fd_desc_folder LIKE "'.$c.'"'; 
    		$req_pages=mysql_query($pages) or die('Erreur SQL !'.$pages.'<br>'.mysql_error());
    		$nb_pages = mysql_num_rows($req_pages);
    Dans mon SELECT .... LIKE="'.$c.'"; le $c est null (Undefined variable).
    Je pense c'est que le $c de mon fonction est une variable local, donc ne peut pas être utilisé en dehor de ma fonction.

    mais comment puis-je utiliser sa valeur en dehor?
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Oui c'est vrai. Une façon de procéder serait d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $GLOBALS['c'] = $a + $b;
    Au lieu de :
    PS : la documentation sur les portées des variables.

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    ben en fait je realise, que $GLOBALS['var'] ne fonctionne pas dans une boucle, il garde en mémoire la premeire rencontrée

    c'est $dir_enfant que j'ai besoin d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    function liste_repertoire($dir,$child) {
    $dossier_array=array();
    	if ($handle = opendir($dir)) {
    		while ((false !== $file = readdir($handle))) {
    			if(is_dir($dir.$file)){
    				if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..'
    					$chemin_fichier = $dir.$file;
     
    					$dir_enfant=str_replace($dir,"",$chemin_fichier);
     
     
    					if (is_dir($dir.$dir_enfant)) {
    						if (!in_array($file, $GLOBALS['tabl_exclus'])) {
    						$GLOBALS['direnfant']=$dir_enfant;
    							//Cette ligne permet de mettre a jour la table tb_pages lorsqu'un nouveau dossier est ajouté
    							include("include/insert_pages.php");
     
    							echo '<div class="menu"><a class="'.$child.'" href="index.php?dir='.str_replace($_SESSION['root'],"",$dir.$dir_enfant).'">'.str_replace("AP","'",str_replace("_"," ",$dir_enfant)).'</a></div>';
     
    							//Ci-dessous, reapelle la fonction et enlève le dossier parent.
    							//permets de voir si le dossier contient d'autre dossier...
    							liste_repertoire($dir.$dir_enfant.'/',' child');
    						}
    					} 
    				}
    			}
    		}
    		closedir($handle);
    	}
    }
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] transformer une variable local en global d'une fonction
    Par bibed dans le forum MATLAB
    Réponses: 3
    Dernier message: 13/11/2009, 22h04
  2. [rendre une variable globale dans une fonction]
    Par emilek dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 28/07/2009, 18h11
  3. [rendre une variable globale dasn une fonction]
    Par emilek dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 28/07/2009, 17h00
  4. Réponses: 4
    Dernier message: 16/02/2006, 10h40
  5. Réponses: 4
    Dernier message: 05/10/2005, 18h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo