6.Le langage PHP
6.5.Include
6.5.1.Introduction
Pour résoudre un problème complexe, bien souvent, la meilleure solution consiste à le découper en plusieurs petits problèmes plus simples à appréhender. Il en est de même pour les sites web.
Généralement, un script PHP est composé d'appels à des fonctions que l'on peut regrouper par thèmes (manipulation de chaînes de caractères, accès à une base de données, lecture dans un fichier, etc...). Il est alors possible d'associer à chaque thème un ou plusieurs scripts, pour constituer des bibliothèques de fonctions.
Par extension, nous verrons qu'il est également possible de créer des scripts contenant des portions de présentation (entête, bandeau supérieur, menu, pied de page) et de les assembler par simple inclusion dans un script principal.
Enfin, nous verrons qu'il peut être parfois assez difficile de localiser avec précision les scripts à inclure et nous présenterons les différentes façon d'y remédier.
Vous devrez également prendre connaissance des règles de sécurité liées à l'utilisation des fonctions présentées dans ce chapitre.
6.5.2.Include et les bibliothèques de fonction
Pour pouvoir utiliser des scripts de déclaration de fonctions depuis le script exécuté, il suffira de les inclure et pour cela, nous disposons de la fonction (ou instruction) include() qui, en quelque sorte se décline en include_once(), require() et require_once().
Un appel à include() suivi d'un nom de fichier aura tout simplement pour effet d'en inclure son contenu à l'endroit de l'appel.
Ainsi le script suivant
qui fait appel à
est équivalent à
|
<?php
include("include_inc.php"); $resultat = cube(3); echo $resultat; ?> |
|
<?php
function cube($x) { return $x*$x*$x; } ?> |
<?php function cube($x) { return $x*$x*$x; } $resultat = cube(3); echo $resultat; ?> |
![]() |
|
6.5.3.include_once, require et require_once
Nous ne reviendrons pas sur l'historique et les changements de comportement des fonctions de type include(). Nous nous contenterons donc d'en décrire les propriétés depuis PHP>=4.0.2.
Lorsque des scripts inclus, incluent eux-même d'autres scripts, il peut arriver que bien malgré vous, vous incluiez plusieurs fois le même script. Si ce dernier contient une déclaration de fonction ou de classe, cela conduira inévitablement à une erreur de redéclaration. Pour éviter ce problème, vous pouvez utiliser include_once() à la place d'include(). Son comportement est identique si ce n'est qu'un script déjà inclus ne sera pas inclus une seconde fois.
Lorsqu'un script inclus par include() ou include_once() lève une erreur, le script principal poursuit son exécution comme si de rien n'était. Même si dans certains cas, cela peut-être le comportement espéré, il existe également de nombreux cas, pour lesquels, l'échec du script inclus est rédibitoire. Aussi, si vous préférez que le script principal s'arrête en cas d'échec du script inclus privilégiez l'instruction require() ou require_once().



include.php

