English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderás cómo incluir y evaluar archivos en PHP.
Se puede incluir un archivo PHP en otro archivo PHP utilizando las sentencias include() y require(). Incluir un archivo produce el mismo resultado que copiar el código de un archivo específico y pegarlo en la ubicación donde se llama.
Puede ahorrar mucho tiempo trabajando con la inclusión de archivos.-Simplemente almacene los bloques de código en archivos separados y utilice las sentencias include() y require() para incluirlos en cualquier lugar necesario, sin tener que escribir todo el bloque de código varias veces. Un ejemplo típico es incluir archivos de encabezado, pie de página y menú en todas las páginas del sitio web.
La sintaxis básica de las sentencias include() y require() se puede expresar de la siguiente manera:
include("path/a/filename"); o include "path/a/filename"; require("path/a/filename"); o require "path/a/filename";
Consejo:Al igual que las sentencias print y echo, puede omitir los paréntesis al usar las sentencias include y require, como se mencionó anteriormente.
A continuación, se muestra un ejemplo de cómo incluir códigos de encabezado, pie de página y menú almacenados en archivos separados "header.php", "footer.php" y "menu.php" en todas las páginas del sitio web. Con esta técnica, es suficiente cambiar un archivo para actualizar inmediatamente todas las páginas del sitio web, ahorrando mucho trabajo repetitivo.
<!DOCTYPE html> <html> <head> <title>Manual básico</title> </head> <?php include "header.php"; ?> <?php include "menu.php"; ?> <h1>Bienvenido a nuestro sitio web (www.3codebox.com)!</h1> <p>Encontrará mucha información útil aquí./p> <?php include "footer.php"; ?> </html>
Quizás esté pensando, si podemos usar la sentencia include() para incluir archivos, ¿por qué necesitamos require(). Normalmente, la ejecución de la sentencia require() es similar a la de include().
La única diferencia es que la sentencia include() solo genera advertencias de PHP, pero si no se encuentra el archivo que se debe incluir, permite que el script continúe ejecutándose, mientras que la sentencia require() genera un error fatal y detiene la ejecución del script .
<?php require "my_variables.php"; ?> <?php require "my_functions.php"; ?> <!DOCTYPE html> <html> <head> <title><?php displayTitle($home_page); ?></title> </head> <?php include "header.php"; ?> <?php include "menu.php"; ?> <h1>Bienvenido a nuestro sitio web (www.3codebox.com)!</h1> <p>Encontrará mucha información útil aquí./p> <?php include "footer.php"; ?> </html>
Nota: Si se incluyen archivos de biblioteca o archivos que contienen funciones y variables de configuración necesarias para ejecutar la aplicación (comoarchivo de configuración de base de datos),se recomienda usar la sentencia require().
Si se usa accidentalmente la sentencia include o require para incluir el mismo archivo varias veces (a menudofunciónoclaseArchivo) , puede causar conflictos. Para evitar esto, PHP proporciona las sentencias include_once y require_once. Estas sentencias actúan de la misma manera que las sentencias include y require, con una excepción:
Incluso si se incluye el archivo nuevamente, las sentencias include_once y require_once solo incluirán el archivo una vez, es decir, si el archivo se ha incluido anteriormente en una sentencia, no se incluirá nuevamente. Para entender mejor cómo funciona, veamos un ejemplo. Supongamos que tenemos un archivo "my_functions.php", con el siguiente código:
<?php function multiplySelf($var){ $var *= $var; //Multiplicar el valor de la variable en sí echo $var; } ?>
Este es un script de PHP que incluye el archivo "my_functions.php".
<?php //Incluir archivo require "my_functions.php"; // Llamar a la función multiplySelf(2); // Salida: 4 echo "<br>"; //Incluir el archivo de nuevo require "my_functions.php"; // Llamar a la función multiplySelf(5); // No se ejecuta ?>
Al ejecutar el script anterior, verá un mensaje de error similar al siguiente:“Error fatal: No se puede redeclarar multiplySelf()”La razón por la que ocurre esto es que 'my_functions.php' se incluye dos veces, lo que significa que la función multiplySelf() se define dos veces, lo que hace que PHP detenga la ejecución del script y genere un error fatal. Ahora, reescribe el ejemplo anterior utilizando require_once.
<?php // Incluyendo archivo require_once "my_functions.php"; // Llamar a la función multiplySelf(2); // Salida: 4 echo "<br>"; //Incluir el archivo de nuevo require_once "my_functions.php"; // Llamar a la función multiplySelf(5); // Salida: 25 ?>
Como puede ver, al usar require_once en lugar de require, el script funciona como se espera.