En PHP, las funciones de incluir y requerir se confunden fácilmente. A continuación utilizaré un ejemplo clásico para ilustrar profundamente sus diferencias.
Cuando accedemos con frecuencia a una base de datos, podemos escribir la declaración de conexión en un archivo
con_db.php
<?php
$dbh = mysql_connect('localhost','','');
mysql_select_db('admreqs');
?>
En la aplicación real, podemos llamar a este archivo en el programa.
Por ejemplo, require("con_db.php") o include("con_db.php)
, el efecto de las dos funciones es casi el mismo.
Pero si usa
filename.php
<?php
así
requerir("con_db.php")
función myfun($par1,$par2)
{Contiene declaraciones para el procesamiento de bases de datos}
.....
midiversión($par1,$par2);
.....
midiversión($p1,$p2);
?>
El archivo no puede continuar ejecutándose cuando llega a myfun, porque las variables externas no se pueden obtener en la función (lo mismo ocurre con include). A menos que se pase $dbh a la función como una variable. Esto aumenta la complejidad de llamar a funciones.
Podemos resolver este problema poniendo require o include dentro de la función.
Si se utiliza include, la primera llamada a la función del archivo se realizará sin problemas, pero la segunda llamada no se ejecutará. La razón es que la base de datos no se puede volver a abrir sin cerrarla. En otras palabras, con_db.php se ejecuta dos veces. Reemplace include con require y todo estará bien.
En otras palabras, require es similar a un escaneo previo. Cuando se ejecuta el programa, ya sea dentro o fuera de la función, el archivo require se ejecutará primero y solo una vez. E include llama al archivo cada vez que se ejecuta, es decir, después de esta ejecución, la próxima vez que se ejecute hasta este punto, se ejecutará nuevamente.
Por lo tanto, si hay ciertas declaraciones en un bucle que solo desea ejecutar una vez, puede incluirlas con require.