J'ai lu et relu les explications concernant la portée des variables dans différentes situations et je coince sur un truc. Si qq peut m'aider, cela m'évitera de perdre la tête sur ce qui est probablement une c...rie de ma part.
Alors, voilà :
1. Je définis une constante dans un premier fichier appelé parametres.php
Code : Tout sélectionner
define("RACINE","http://www.monsite.com");Code : Tout sélectionner
<a href="<?php print RACINE; ?>formations/filieres.php">FILIERES</a>Code : Tout sélectionner
include("parametres.php");
<html>blablabla....
<?php include(RACINE."menu.php"); ?>
</html>
Normalement, la constante RACINE devrait être remplacée par sa valeur dans le fichier page.php mais aussi dans le fichier menu.php. Or, dans tous mes tests, le mot RACINE s'affiche en dur à la place de sa valeur dans l'inclusion du fichier menu.php. Tout se passe comme si cette constante n'avait pas la portée suffisante pour être reconnue dans menu.php.
Si je redéclare RACINE comme constante dans page.php, là cela fonctionne. J'avais pourtant cru comprendre qu'un bout de code amené par un include était lu et interprété exactement comme s'il était dans le fichier qui l'a appelé.
Il y a un concept qui m'échappe et qui bien sûr, me fout tout le reste en l'air.
Quelqu'un peut-il m'expliquer ce que je ne pige pas, please ?