Include() y require().

5 oct 2010

Include(), requiere()
A la hora de modularizar el código, lo normal es repartirlo en varios ficheros, y hacer que el programa principal use ese código. En lenguajes compilados, esto se consigue con directivas del preprocesador. En lenguajes interpretados como PHP, esto se consigue en tiempo de ejecución.
Con include() hacemos que se pase el flujo de la ejecución a otro fichero, conservando todo el estado (variables, funciones definidas, etc.). El efecto final es equivalente a coger los contenidos del fichero que se incluye, y ponerlos en lugar de la línea que hace el include (). Sin embargo, el fichero incluido tiene que empezar y terminar por <? Y  ?> si queremos que sus contenidos se ejecuten y no se saquen por salida estándar.
Lo normal es usar includes para concluir ficheros que contienen definiciones de funciones y/o clases. Tambien es habitual hacer que un fichero incluido incluya a otro (por ejemplo, una función necesita que tengamos otra declarada). Esto puede provocar problemas si, por error, se intenta definir dos veces la misma función. Para evitar esto usaremos include_once(). Include_once() funciona de la misma manera que include(), pero con una excepción: si se llama una segunda (o sucesiva) vez con el mismo nombre de fichero, no hace nada.
Tambien es habitual que nuestro programa depende de una de estos ficheros que estamos incluyendo. En estos casos, lo recomendable es usar requiere(), que funciona como include() salvo que producirá un error y detendrá la ejecución del programa si no se puede incluir el fichero (porque no exista o ´porque no haya permisos para leerlo). Anañlogamente, también existe requiere_once().

0 comentarios: