[RESOLU][PHP] Utilisation de variables globales

Hello les gens,

J’ai un soucis, je suis en train de migrer un fichier javascript vers php parce que j’ai remarqué que les performances étaient nettement meilleur si c’est traiter par le serveur. Chose que je fais sans problème, mais au moment d’effectuer mes tests, en mettant des echo un peu partout parce que je ne sais pas debugué autrement. Je remarque que mes variables qui sont déclarées dans le fichier php ne sont même pas utilisées.

Voici un apercu de mon fichier.php :

[code]<?php
$SPOILER_ID = 0;
$NB_LETTERS_PER_SIGNATURE = 200;
$NB_MAX_LETTERS_PER_POST = 40000;

$IMG_MAX_SIZE = 600; // Afficher le ration en % avec la résolution d’origine et un event click pour voir en taille normal
$IMG_AVATAR_MAX_SIZE = 80; // taille maxi de l’avatar (width et height)
$IMG_SIGNATURE_MAX_HEIGHT = 30;
$IMG_SIGNATURE_MAX_WIDTH = 500;
$VIDEO_WIDTH = 512; //425; 400
$VIDEO_HEIGHT = 384; //356; 300

function standardTags($strMessage, $TAG_START, $TAG_END) // createImage
{
echo $SPOILER_ID;
}

<?php>[/code] Voilà, en faisant un simple echo, je ne récupère rien. Du coup, je suis obligé de mettre mes variables dans la fonction.

soit dans ta fonction tu fait :
global $SPOILER_ID;

avant de l’utiliser qui lui indique qu’elle est globale

soit tu utilise le tableau $_GLOBAL[‹ SPOILER_ID ›] (ou $_GLOBALS je sais plus) :slight_smile:

GL :crying:

Je vais tester et je te fais signe.

Ca ne marche po :slight_smile:

[code]<?php
$SPOILER_ID = ‘TEST’;
$NB_LETTERS_PER_SIGNATURE = 200;
$NB_MAX_LETTERS_PER_POST = 40000;

$IMG_MAX_SIZE = 600; // Afficher le ration en % avec la résolution d’origine et un event click pour voir en taille normal
$IMG_AVATAR_MAX_SIZE = 80; // taille maxi de l’avatar (width et height)
$IMG_SIGNATURE_MAX_HEIGHT = 30;
$IMG_SIGNATURE_MAX_WIDTH = 500;
$VIDEO_WIDTH = 512; //425; 400
$VIDEO_HEIGHT = 384; //356; 300

function standardTags($strMessage, $TAG_START, $TAG_END) // createImage
{
global $SPOILER_ID;
echo $SPOILER_ID;
}

<?php>[/code] çà ? et çà ? [code]<?php $_GLOBALS['SPOILER_ID'] = 'TEST'; $NB_LETTERS_PER_SIGNATURE = 200; $NB_MAX_LETTERS_PER_POST = 40000; $IMG_MAX_SIZE = 600; // Afficher le ration en % avec la résolution d'origine et un event click pour voir en taille normal $IMG_AVATAR_MAX_SIZE = 80; // taille maxi de l'avatar (width et height) $IMG_SIGNATURE_MAX_HEIGHT = 30; $IMG_SIGNATURE_MAX_WIDTH = 500; $VIDEO_WIDTH = 512; //425; 400 $VIDEO_HEIGHT = 384; //356; 300 function standardTags($strMessage, $TAG_START, $TAG_END) // createImage { echo $_GLOBALS['SPOILER_ID']; } <?php>[/code] çà non plus ?

Ah ok. Pour le premier cas, ça marche imppec. Par contre, ce n’est pas super. Faudra faire autant de global que de variables déclaré en haut de page. :confused:

Bah utilise le second :slight_smile:

Par contre les variable globales Berk :crying:.

Tu peux faire un tableau indexé :
$variables_globales[‹ SPOILER_ID ›] = ‹ TEST ›;
$variables_globales[‹ variable2 ›] = 45;

et dans ta fonction tu mets juste
global $variables_globales;

et utilise $variables_globales[‹ SPOILER_ID ›] :cry:

Si çà bouge pas utilise des constantes :
define(‹ SPOILER_ID ›,‹ TOTO ›);

et apres dans ton code Direct : SPOILER_ID

Enfin … plutot pour tes autres variables (celle qui seront CONSTANTE).

Si j’ai bien compris, pour les constantes, y a pas besoin de mettre le $ ?

oui :slight_smile: ce n’est pas une variable.

define(‹ CONSTANTE_A_TOTO ›,0);

echo « Qui connais la tete à toto « .CONSTANTE_A_TOTO. » :crying: »;