include()

include() funkcija vključi in preveri podano datoteko.

Naslednja dokumentacija velja tudi za funkcijo require(). Ti dve funckiji se razlikujeta samo po tem, kako ravnata ob napaki. Funkcija include() izpiše Opozorilo, medtem ko funkcija require() povzoroči Usodno napako. Vedno uporabite funkcijo require(), če bi radi zaradi manjkajoče datoteke radi ustavili izvajanje skripte. Funkcija include() v tem primeru, ne bo ustavila delovanja skripte. Bodite pozorni tudi na include_path nastavitev.

Ko se datoteka vključi, je tej datoteki navoljo območje spremenljivk klicujoče datoteke do te vrstice. Vse spremenljivke, ki so na voljo do te vrstice, bodo na voljo tudi v klicani datoteki, od te točke naprej.

Primer 11-3. Osnovni include() primeri

vars.php
<?php

$barva
= 'zeleno';
$sadje = 'jabolko';

?>

test.php
<?php

echo "$barva $sadje"; // ne izpise nic

include 'vars.php';

echo
"$barva $sadje"; // zeleno jabolko

?>

Če se include pojavi v neki funkciji, bodo vse spremenljivke, ki so v klicani datoteki, navoljo samo v tej funkciji. Torej, bodo definirane in na voljo samo v območju spremenljivk te funkcije.

Primer 11-4. Vključevanje datoteke v funkciji

<?php

function foo()
{
global
$barva;

    include
'vars.php';

    echo
"$barva $sadje";
}

/* vars.php je v v obmocju funkcije foo()   *
* zato $sadje ni na voljo zunaj tega       *
* obmocja. $barva je na voljo, ker smo jo  *
* deklarirali kot globalno spremenljivko   */

foo();                    // zeleno jabolko
echo "$barva $sadje";   // zeleno

?>

Ko vključimo datoteko, se le-ta obravnava kot navadna HTML dadoteka in če bi želeli znotraj te datoteke izvajati PHP kodo, bi jo morali obdati z veljavnimi PHP začetnimi in zaključnimi značkami.

Če imate opcijo "URL fopen wrappers" omogočeno (kar je privzeto) lahko pot do datoteke navedete z uporabo URL naslova (preko HTTP) namesto lokalne poti do datoteke. Če ciljni strežnik interpretira datoteko kot PHP kodo, lahko spremenljivke podamo z HTTP GET metodo. To strogo rečeno ni isto kot vkjučevanje lokalne datoteke, ki teče v klicujočem območju spremenljik; skripta se ubistvu izvaja na oddaljenem strežniku in rezulat te skripte je vključen v lokalno skripto.

Pozor

Različica PHP za okolje Windows trenutno ne podpira odpiranja oddaljenih datotek, tudi če je nastavitev allow_url_fopen vklopljena.

Primer 11-5. include() preko HTTP

<?php

/* Ta primer predpostavlja, da oddaljeni streznik www.primer.com omogoca *
* PHP v datotekah .php in ne v .txt. Da stvar 'Dela' pomeni, da so      *
* spremenljivke $foo in $bar navoljo v vkljuceni datoteki.              */

// Ne bo delalo: datoteka.txt ne bo obravnavana kot PHP
include 'http://www.primer.com/datoteka.txt?foo=1&bar=2';

// Ne bo delalo; Poskusi odpreti datoteko datoteka.php?foo=1&bar=2 lokalno
include 'datoteka.php?foo=1&bar=2';

// Dela.
include 'http://www.primer.com/datoteka.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include
'datoteka.txt';  // Dela.
include 'datoteka.php';  // Dela.

?>
Poglejte si tudi Remote files, fopen() in file() za sorodne teme.

Ker include() in require() nista pravi funkciji, ampak sta del jezika PHP, jih morate ekapsulirati v zavite oklepaje.

Primer 11-6. include() in pogojni stavki

<?php

// To je narobe in ne bo dalo kot zeljeno
if ($pogoj)
    include
$datoteka;
else
    include
$druga_datoteka;


// PRAVILNO.
if ($pogoj) {
    include
$datoteka;
} else {
    include
$druga_datoteka;
}

?>

Handling Returns: Možna je uporaba return() stavka znotraj vključene datoteke, da prekinemo izvajanje te datoteke in se vrnemo nazaj v prejšnjo skripto. Prav tako je mogoče vračati vrednosti iz vključenih datotek. Vrnjena vrednost include() se lahko uporablja tako kot pri normalnih funkcijah.

Opomba: V PHP 3 se return() ne sme pojavljati drugje kot v bloku funkcije, kar pomeni da velja samo za to funkcijo in ne za celo datoteko.

Primer 11-7. include() and the return() statement

return.php
<?php

$var
= 'PHP';

return
$var;

?>

noreturn.php
<?php

$var
= 'PHP';

?>

testreturns.php
<?php

$foo
= include 'return.php';

echo
$foo; // izpise 'PHP'

$bar = include 'noreturn.php';

echo
$bar; // izpise 1

?>

$bar ima vrednost 1 ker je bila funkcija include() uspesno izvedena. Pozorni bodite na razliko zgornjih dveh primerov. Prvi primer uporablja return() funkcijo znotraj vključene datoteke, kar ne velja za drugi primer. Drugi načini za vključevanje datotek so možni z fopen(), file() funkcijami ali z uporabo include() funkcije z Output Control Functions.

Poglejte si tudi require(), require_once(), include_once(), readfile(), virtual(), in include_path.