La instrucción include en PHP es similar a la declaración import en Java o Python, y #include directiva en C/C++. Sin embargo, hay una ligera diferencia en la forma en que funciona la instrucción include en PHP.

La importación o #include de Java/Python en C/C++ solo carga una o más construcciones de lenguaje, como las funciones o clases definidas en un archivo, en el archivo actual. Por el contrario, la instrucción include en PHP trae todo lo que hay en otro archivo en el script PHP existente. Puede ser un código PHP, un archivo de texto, marcado HTML, etc.

La declaración «include» en PHP

Aquí hay un ejemplo típico de cómo funciona la declaración include en PHP:

myfile.php

<?php
   # some PHP code
?>

test.php

<?php
   include 'myfile.php';
   # PHP script in test.php
?>

La palabra clave include en PHP es muy útil, especialmente cuando necesita usar el mismo código PHP (función o clase) o marcado HTML en varios scripts PHP en un proyecto. Un ejemplo de ello es la creación de un menú que debe aparecer en todas las páginas de una aplicación web.

Supongamos que desea crear un menú común para su sitio web. A continuación, crea un archivo «menu.php» con el siguiente contenido.

<a href="http://www.tutorialspoint.com/index.htm">Home</a> - 
<a href="http://www.tutorialspoint.com/ebxml">ebXML</a> - 
<a href="http://www.tutorialspoint.com/ajax">AJAX</a> - 
<a href="http://www.tutorialspoint.com/perl">PERL</a><br />

Ahora crea tantas páginas como quieras e incluye este archivo para crear el encabezado. Por ejemplo, ahora su archivo «test.php» puede tener el siguiente contenido:

<html>
   <body>
      <?php include("menu.php"); ?>
      <p>This is an example to show how to include PHP file!</p>
   </body>
</html>

Se supone que ambos archivos están presentes en la carpeta raíz del documento del servidor XAMPP. Visite http://localhost/test.php URL. Producirá el siguiente resultado:

Cuando el analizador PHP encuentra la palabra clave include, intenta encontrar el archivo especificado en el mismo directorio desde el que se ejecuta el script actual. Si no se encuentra, se buscan los directorios en la configuración «include_path» de «php.ini».

Cuando se incluye un archivo, el código que contiene hereda el ámbito de la variable de la línea en la que se produce la inclusión. Cualquier variable disponible en esa línea en el archivo de llamada estará disponible dentro del archivo llamado, a partir de ese momento. Sin embargo, todas las funciones y clases definidas en el archivo incluido tienen el ámbito global.

Ejemplo

En el siguiente ejemplo, tenemos un script «myname.php» con dos variables declaradas en él. Se incluye en otro script test.php. Las variables se cargan en el ámbito global.

myname.php

<?php
   $color = 'green';
   $fruit = 'apple';
?>

test.php

<?php
   include "myname.php";
   echo "<h2>$fname $lname</h2>";
?>

Cuando el navegador visita http://localhost/test.php, muestra:

Ravi Teja

Sin embargo, si el archivo se incluye dentro de una función, las variables solo forman parte del ámbito local de la función.

myname.php

<?php
   $color = 'green';
   $fruit = 'apple';
?>

test.php

<?php
   function showname() {
      include "myname.php";
   }
   echo "<h2>$fname $lname</h2>";
?>

Ahora, cuando el navegador visita http://localhost/test.php, muestra advertencias de variables indefinidas:

Warning: Undefined variable $fname in C:\xampp\htdocs\test.php on line 7
Warning: Undefined variable $lname in C:\xampp\htdocs\test.php on line 7

include_once comunicado

Al igual que include, PHP también tiene la palabra clave «include_once«. La única diferencia es que si el código de un archivo ya se ha incluido, no se volverá a incluir y «include_once» devuelve true. Como su nombre indica, el archivo se incluirá solo una vez.

«include_once» se puede usar en los casos en que el mismo archivo puede incluirse y evaluarse más de una vez durante una ejecución particular de un script, por lo que puede ayudar a evitar problemas como redefiniciones de funciones, reasignaciones de valores de variables, etc.

PHP – Include vs Require

La palabra clave require en PHP es bastante similar a la palabra clave include. La diferencia entre los dos es que, en caso de fallo, se producirá un error fatal a nivel de E_COMPILE_ERROR.

En otras palabras, require detendrá el script, mientras que include solo emite una advertencia (E_WARNING) que permite que el script continúe.

require_once palabra clave

La palabra clave «require_once» es similar a require con una sutil diferencia. Si está utilizando «require_once», PHP comprobará si el archivo ya se ha incluido y, de ser así, no se volverá a incluir el mismo archivo.