Comprendre les chemins d'inclusion relatifs PHP
En PHP, les chemins d'inclusion relatifs peuvent prêter à confusion lorsqu'il s'agit de plusieurs inclusions imbriquées. Pour déterminer le chemin correct vers un fichier inclus, il est essentiel de comprendre les règles de portée qui les régissent.
Lorsque vous exécutez un script PHP, le répertoire de travail actuel devient le répertoire où se trouve le script. Cela sert de chemin de base pour résoudre les chemins relatifs spécifiés dans les instructions d'inclusion. Cependant, il y a une distinction à faire lorsque l'on considère les inclusions imbriquées.
Par rapport au script principal
Lorsque le fichier A.PHP inclut le fichier B.PHP, qui à son tour inclut fichier C.PHP, le chemin relatif vers C.PHP est déterminé en fonction de l'emplacement de A.PHP, et non de B.PHP. En effet, include() insère simplement le contenu du fichier spécifié dans le script en cours d'exécution.
Exemple :
// A.php is located at /var/www/html/ <?php include 'B.php'; ?> // B.php is located at /var/www/html/includes/ <?php include 'C.php'; ?> // C.php is located at /var/www/html/utils/
Dans ce scénario, le chemin relatif vers C.PHP est /var/www/html/utils/C.php, pas /var/www/html/includes/utils/C.php.
Utilisation de FILE pour les chemins relatifs
Si vous souhaitez spécifier un chemin relatif en fonction de l'emplacement du fichier effectuant l'inclusion, vous pouvez utiliser la constante __FILE__. Cette constante pointe toujours vers le fichier réel où réside la ligne de code actuelle, quel que soit le répertoire de travail actuel.
// Using __FILE__ in B.php <?php include(dirname(__FILE__)."/C.PHP"); ?>
Dans ce cas, le chemin relatif vers C.PHP proviendrait du répertoire contenant B .PHP.
N'oubliez pas que les chemins d'inclusion de PHP sont toujours relatifs au script principal. En tirant parti de __FILE__ ou en comprenant la nature hiérarchique des chemins d'inclusion, vous pouvez gérer en toute confiance les instructions d'inclusion relatives dans les applications PHP complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!