Quelles sont les différences entre include, require, include_once et require_once en PHP ?
Bonjour à tous ! Je viens de commencer à apprendre PHP et je n'arrive pas à comprendre la différence entre ces quatre constructions pour inclure des fichiers. Elles semblent toutes faire la même chose — insérer le code d'un autre fichier.
J'ai un fichier config.php avec les paramètres de la base de données :
<?php
$host = 'localhost';
$db = 'mydb';
$user = 'root';
$pass = '';
?>
Et je l'inclus dans index.php de différentes manières :
<?php
include 'config.php';
// ou
require 'config.php';
// ou
include_once 'config.php';
// ou
require_once 'config.php';
?>
Les quatre variantes fonctionnent, et je vois les variables de config.php. Quelle est donc la différence ? Quand utiliser quoi ?
J'ai aussi remarqué une chose étrange : si j'écris deux fois include 'config.php', j'obtiens une erreur indiquant que les variables sont redéfinies. Mais avec include_once, ce problème ne se produit pas. Pourquoi cela arrive-t-il ?
Et surtout — que se passera-t-il