¿Cuál es la diferencia entre include, require, include_once y require_once en PHP?
¡Hola a todos! Acabo de empezar a aprender PHP y no logro entender la diferencia entre estas cuatro construcciones para incluir archivos. Parece que todas hacen lo mismo: insertar código de otro archivo.
Tengo un archivo config.php con la configuración de la base de datos:
<?php
$host = 'localhost';
$db = 'mydb';
$user = 'root';
$pass = '';
?>
Y lo incluyo en index.php de diferentes maneras:
<?php
include 'config.php';
// o
require 'config.php';
// o
include_once 'config.php';
// o
require_once 'config.php';
?>
Las cuatro opciones funcionan y veo las variables de config.php. ¿Cuál es entonces la diferencia? ¿Cuándo usar cada una?
También noté algo extraño: si escribo include 'config.php' dos veces, obtengo un error de que las variables se redefinen. Pero con include_once no tengo ese problema. ¿Por qué sucede esto?
Y lo principal: ¿qué pasará...