PHP Reutilización de código: Include / Require
Introdución
- Cando programamos pode darse o caso de que teñamos un código (ven en forma de funcións, constantes ou bloque de código) que teñamos que utilizar en moitas páxinas distintas.
- Nestes casos é conveniente ter o código 'gardado' non arquivo separado e que poidamos utilizalo cando o necesitemos.
- Isto o conseguimos coas ordes: include, include_once, require e require_once.
Include
- A sentenza include inclúe e avalía o arquivo especificado.
- A sintaxe é:
include "[path/]nomearquivo.inc.php";
- O [path] pode ser relativo ou absoluto. Se se fai relativo será con respecto ao cartafol onde se está a cargar o arquivo php que fai uso do include.
- Podedes atopar arquivos include coa extensión .inc, .php, pero para diferencialos dos arquivos php e para non dar pistas sobre o tipo de arquivo que estamos a utilizar usaremos a extensión .inc.php
- O arquivo .inc.php sempre deberá comezar e rematar coas etiquetas de php: <?php ?> xa que sempre cando facemos uso dun destes arquivos, abandona o modo php e ingresa no modo HTML.
- Vexamos un exemplo:
- Arquivo: FuncionsExternas.inc.php
1 <?php 2 3 /* 4 * Función que crea un array cun número de elementos indicado no parámetro 5 * Os inicializa ao valor null 6 * Parámetros: 7 * $numElementos:número de elementos do array 8 */ 9 function crearArray($numElementos){ 10 $array = array(); 11 for($cont=0;$cont<$numElementos;$cont++){ 12 $array[$cont]=null; 13 } 14 return $array; 15 } 16 ?>
- Arquivo: ReutilzandoCodigo.php
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6 <title>Exemplos de códigos php</title> 7 </head> 8 <?php 9 include ("./FuncionsExternas.inc.php"); 10 ?> 11 <body> 12 <?php 13 $datos = crearArray(10); 14 15 foreach ($datos as $clave => $dato){ 16 printf("Clave:%d - Valor:%s<br />",$clave,$valor); 17 } 18 19 ?> 20 </body> 21 </html>
-- Ángel D. Fernández González -- (2016).