PHP kézikönyv
Előző
12.
Fejezet.
Vezérlési szerkezetek
Következő
Az include() beilleszti és feldolgozza a megadott fájlt.
Az alábbiak igazak a require() -ra is.
A require() és az include() megegyezik egymással a hibakezelését leszámítva.
Az include() nem fatális hibát, figyelmeztetést generál, a require() viszont fatális hibát Az include() nem fatális hibát, figyelmeztetést generál, a require() viszont fatális hibát jelez.
Magyarán, ahol az igényelt fájl nemlétekor a futást meg kell szakítani, ajánlott a require().
Az include() nem így viselkedik, a hibától függetlenül a szkript futtatása folytatódik.
Bizonyosodj meg, hogy a include_path helyesen van beállítva!
A fájl beillesztése során a megadott fájl örökli az include() helyén érvényes változó hatáskört.
Bármely változó, amely azon a ponton elérhető, elérhető a beillesztett fájlban is.
Példa 12-3.
Egyszerű include() példa
valtozok.php ?php $szin = 'zöld'; $gyumolcs = 'alma';? teszt.php ?php echo "Egy $szin $gyumolcs"; / / Egy include 'valtozok.php'; echo "egy $szin $gyumolcs"; / / Egy zöld alma?
Függvény belsejében a megadott fájlban szereplő kód úgy fog viselkedni, mintha az magában a függvényben szerepelt volna.
Ez azt jelenti, hogy a fájl örökli a változók érvényességi körét.
Példa 12-4.
Függvényen belüli beillesztés
?php function ize() {global $szin; include 'valtozok.php'; echo "Egy $szin $gyumolcs";} / * valtozok.php az ize() függvény hatóköréébe esik, * * így a $gyumolcs nem elérhető a főggvényen kívül. * * A $szin igen, mivel globálisnak lett deklarálva. * / ize(); / / Egy zöld alma echo "Egy $szin $gyumolcs"; / / Egy zöld?
Ha egy fájlt beillesztünk az include() -dal vagy require() -ral, akkor a célfájl elején az elemző kilép a PHP módból HTML módba, majd visszaáll PHP módba a fájl végén.
Ennek okán bármely beillesztendő fájlban levő PHP kódot közre kell fogni egy érvényes PHP kezdő - és zárójelöléssel.
Ha az include() -dal hívott fájl HTTP-n keresztül érkezik az "fopen wrapper "-ek használatával, és a célszerver PHP kódként feldolgozza a fájlt, akkor átadhatsz változókat a hívott fájlnak HTTP GET lekérési formában.
Ez nem teljesen ugyanaz, mintha a include() -dal hívott fájl örökölné a helyi változókat, mivel a szkript valójában a távoli szerveren fut le, és a futási eredmény kerül beépítésre a helyi szkriptbe.
Figyelem
A PHP Windows rendszeren futó verziója jelenleg nem támogatja a távoli állomány elérést e függvény használatakor, még akkor sem, ha az allow_url_fopen engedélyezett.
Példa 12-5. include() HTTP-n keresztül
/* Ezek a példák feltételezik, hogy a szerver be van állítva a .php * * fájlok feldolgozására és nincs beállítva a .txt fájlok feldolgozására * * A 'működik' azt jelenti, hogy az $ize és $bigyo változók elérhetőek * * a hívott fájlban. * / / / Nem működik: a file.txt nem kerül feldolgozásra include ("http: / /szerver / file.txt?ize=1 bigyo=2"); / / Nem működik: egy 'file.php?ize=1 bigyo=2 'nevű fájlt keres a helyi gépen include ("file.php?ize=1 bigyo=2"); / / Működik include ("http: / /szerver / file.php?ize=1 bigyo=2"); $ize = 1; $bigyo = 2; include ("file.txt"); / * Működik * / incluie ("file.php"); / * Működik * /
Mivel az include() és a require() különleges nyelvi elem, kapcsos zárójelekkel kell közrefogni, ha egy feltételes utasításon belül szerepel.
Példa 12-6. include() feltételes blokkon belül
/*Ez NEM JÓ, és nem a várt eredményt adja * / if ($feltetel) include($file); else include($other); / * Ez a HELYES * / if ($feltetel) {include($file);} else {include($other);}
return utasítást lehet elhelyezni egy include() -olt fájlban annak érdekében, hogy a kiértékelés ott befejeződjön, és visszaadjon egy értéket a hívó szkriptnek.
A visszatérési értéket ugyanúgy használhatod, mint egy közönséges függvénynél.
Megjegyzés:
PHP 3, a return nem jelenhet meg függvény blokkon kívül máshol, amely esetben a függvénybő ltörténő visszatérést jelöli.
Példa 12-7.
Az include() és a return() utasítás
return.php ?php $var = 'PHP'; return $var;? noreturn.php ?php $var = 'PHP';? testreturns.php ?php $ize = include 'return.php'; echo $ize; / / kiírja: 'PHP' $bigyo = include 'noreturn.php'; echo $bigyo; / / kiírja:
1?
$bigyo értéke 1, mert a beillesztés sikeres volt.
Figyeld meg a különbséget a két fenti példa között.
Az első a return() segítségével visszaadott egy értéket, a második nem.
Létezik még néhány egyéb módja is változók beemelésének a fopen(), file() segítségével, vagy include() és Kimenet szabályzó függvények együttes használatával.
Lásd még: require(), require_once(), include_once(), readfile() és virtual()!
Előző
Tartalom
Következő
Fel