[PHP] Global
Résolu
Kyuzo
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention - 8 juil. 2011 à 14:06
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention - 8 juil. 2011 à 14:06
5 réponses
Re
Après essai...
Tu as bien déclaré global $didelim; dans apply() mais tu as oublié de la faire dans test() !
Après essai...
Tu as bien déclaré global $didelim; dans apply() mais tu as oublié de la faire dans test() !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Il me semble que tu devrais déclarer $didelim en dehors de toute fonction avant de pouvoir l'utiliser en GLOBAL dans des fonctions.
Je te suggère ceci :
Il me semble que tu devrais déclarer $didelim en dehors de toute fonction avant de pouvoir l'utiliser en GLOBAL dans des fonctions.
Je te suggère ceci :
<?php $didelim = array(); require_once "./class.php"; function test(){ $display=apply(); return $display; } echo test(); ?> class.php <?php function apply() { global $didelim; for ($r = 1; $r < 10; $r++) for ($c = 1; $c < 10; $c++) { if (in_array("($r, $c)", $didelim)) continue; array_push($didelim, "($r, $c)"); } return $didelim; } ?>
Il me semble que tu devrais déclarer $didelim en dehors de toute fonction avant de pouvoir l'utiliser en GLOBAL dans des fonctions.
C'est inutile
Mais si on utilise une variable dans une fonction sans mettre global, comme Kyuzo le fait avec $didelim; dans test(), la variable n'est pas globale, tout simplement. Il suffit de mettre global dans toutes les fonctions où on l'utilise, même si elle n'est pas définie en dehors de ces fonctions.
C'est inutile
Mais si on utilise une variable dans une fonction sans mettre global, comme Kyuzo le fait avec $didelim; dans test(), la variable n'est pas globale, tout simplement. Il suffit de mettre global dans toutes les fonctions où on l'utilise, même si elle n'est pas définie en dehors de ces fonctions.
Ça tu ne l'as pas fait dans test()
Par contre, si tu mets global $didelim; dans test, elle devient globale.
La déclarer hors de toute fonction comme le suggère Reivax962 devrait marcher aussi, mais le global $didelim; dans test que je te suggère depuis le début fonctionne.
Allez, +1 pour cette solution ^^