Include

Els fitxers s'inclouen en funció del camí d'accés del fitxer o, si no se'n proporciona cap, el include_path especificat. Si el fitxer no es troba a la ruta include_path, include finalment comprovarà el directori propi de l'script de trucada i el directori de treball actual abans de fallar.

La construcció include emetrà un E_WARNING si no troba cap fitxer; això és diferent del comportament de require, que emetrà un E_ERROR.

Àmbit de les variables

Quan s’inclou un fitxer, el codi que conté hereta l’abast variable de la línia on es produeix la inclusió. Totes les variables disponibles en aquesta línia del fitxer de trucades estaran disponibles dins del fitxer trucat, a partir d'aquest moment. Tot i això, totes les funcions i classes definides al fitxer inclòs tenen l'abast global.

test.php

<?php

echo "A $color $fruit"; // A

include 'vars.php';

echo "A $color $fruit"; // A green apple

?>

vars.php

<?php

$color = 'green';
$fruit = 'apple';

?>

Si la inclusió es produeix dins d'una funció dins del fitxer trucant, tot el codi contingut al fitxer trucat es comportarà com si s'hagués definit dins d'aquesta funció. Per tant, seguirà l'ámbit de variable d'aquesta funció. Una excepció a aquesta regla són les constants màgiques que l’analitzador avalua abans que es produeixi la inclusió.

<?php

function foo()
{
    global $color;

    include 'vars.php';
    // És equivalet a haver escrit:
    // $color = 'green';
    // $fruit = 'apple';

    echo "A $color $fruit";
}

// vars.php está en l'àmbit de foo(), per tant $fruit NO está
// disponible fora d'aquest contexte. En canvi $color SI perquè
//l'hem declarat com a global.

foo();                    // A green apple
echo "A $color $fruit";   // A green

?>

Quan s'inclou un fitxer, l'anàlisi surt del mode PHP i passa al mode HTML al principi del fitxer de destinació i es reprèn de nou al final. Per aquest motiu, qualsevol codi dins del fitxer de destinació que s’hauria d’executar com a codi PHP ha d’estar inclòs dins d’etiquetes vàlides d’inici i finalització de PHP.


ACTIVITAT

Fer servir includes us permet simplificar el codi de les pàgines. Per exemple, podeu afegir un fitxer de capçalera (cap.php) i un de peu (peu.php) amb els continguts comuns de totes les pàgines del vostre lloc (el bàner, el menú, la informació general). Senzillament incloent aquests fitxers a totes les pàgines, podeu aconseguir una estètica comú. Si heu de canviar en algun moment la capçalera, modificant l’arxiu cap.php ho tindreu modificat a totes les pàgines del web.

Feu una pàgina web amb continguts estructurats amb dos fitxers: cap.php i peu.php