En este post vamos ver cómo inluir archivos en nuestros scripts con PHP require. Estos archivos pueden ser otros PHPs, HTMLs… La funcionalidad de esta función es idéntica a la de PHP include.
La diferencia entre ambas es que require en caso de error paraliza el script, mientras que include deja seguir el código del script. Podéis verlo en este post:
Otra manera de hacer includes en HTML es usando la directiva include virtual de SSI de Apache.
Veamos la sintaxis de esta función de PHP extraída de su web oficial:
require 'nombrefichero'; require ('nombrefichero');
Tal y como se puede ver en el código superior es muy sencillo incluir ficheros en nuestros scripts. Os he puesto las 2 sintaxis que hay, solamente tenemos que indicar la ruta dentro del servidor del archivo a incluir.
Pueden darse 2 tipos de errores bastante comunes:
Cuando el fichero es incluído se heredan las variables que contiene. Se podrá hacer uso de ellas a partir de la línea en la que se realizó el include. Os muestro un ejemplo de variables heredadas.
$nombre = 'Pedro'; $apellido = 'Garcia';
El código superior pertenece al fichero include (nombreapellido.php) que vamos a llamar en el código inferior:
//la línea inferior no muestra el contenido de las variables porque no existen aun en el script echo "El nombre es $nombre y el apellido es $apellido"; //realizamos el include require 'nombreapellido.php'; //esta línea si muestra el contenido de las variables porque ya existen en el include echo "El nombre es $nombre y el apellido es $apellido";
El mismo caso que en las variables se da con las funciones. Estas se heredan con todo su código. Os muestro un ejemplo.
function sacanombre() { $nombre = 'Pedro'; $apellido = 'Garcia'; echo "El nombre es $nombre y el apellido es $apellido"; }
El código superior pertenece al fichero include (nombreapellido.php) que vamos a llamar en el código inferior:
//realizamos el include require 'nombreapellido.php'; //esta si mostraría el contenido de la función sacanombre();
require_once tiene el mismo comportamiento que require, la única diferencia entre ambas es que si el código del fichero ya se ha incluido, este no se incluye de nuevo.