[PHP] Global
Résolu
Kyuzo
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,
Ce script ne fonctionne pas, pouvez-vous me dire pourquoi?
class.php
Merci d'avance
Ce script ne fonctionne pas, pouvez-vous me dire pourquoi?
<?php
function test(){
require_once "./class.php";
$didelim = array();
$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;
}
?>
Merci d'avance
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() !-
-
-
-
Justement, c'est ça ton problème ! Telle que tu la déclares, elles est locale à test et n'est pas utilisable dans apply()
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. -
-
-
Le require dans une fonction, c'est limite, met le avant, ça ne coute rien
-
Il manque une { après ta première boucle for
-
-
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 :<?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.
-