PHP include és require utasítások
Ebben a cikkben bemutatjuk az include és a require PHP utasítások közötti különbségeket, illetve ezek használatát. Nagyon sokan függvényeknek nevezik őket, bár tényleg sokban hasonlítanak rájuk, de valójában nem azok. A PHP hivatalos weboldalán is kiemelik, hogy ezeket nyelvi konstrukcióknak nevezzük hivatalosan. Mi valószínűleg szimplán utasításokként fogunk hivatkozni rájuk.
Mi az az include és require?
Az include és a require is egy olyan utasítás, amely beilleszti egy fájl összes szöveges tartalmát egy másik PHP fájlba. Ez azért egy nagyon hasznos megoldás, mert minden weboldal elkészítése során vannak olyan dolgok, amelyeket többször le kell(ene) írnunk, mert több helyen is megjelenik a weboldalon belül, de ezek segítségével rengeteg időt spórolhatunk, mert nem kell újból leírnunk az adott kódrészletet, simán csak a két utasítással beillesztjük az újabb PHP fájlunkba. Ilyen többször elkészítendő, de tartalmilag teljesen azonos elemek, például a lábléc (footer) és a egy menü. A menüknek és a láblécnek minden oldalon ugyanúgy kell kinéznie, minden oldalon ugyanazokat az elemeket, gombokat tartalmazza, így miért kódolnánk le annyiszor ahányszor felszeretnénk használni? Szimplán megírjuk egyetlen egyszer és az összes oldalon, ahol felszeretnénk használni simán beillesztjük az include vagy require utasítással.
Mi a különbség az include és a require között?
Valójában csak egyetlen egy lényegesebb különbség van a kettő között. Ez a különbség pedig a szigorúságukból adódik, mert hiba esetén:
- a require fatal error-t ad vissza (E_COMPILE_ERROR), melynek következtében a kód futása leáll
- az include pedig csak egy warning-ot (E_WARNING) ad vissza, melynek köszönhetően a szkript futása nem áll le
Ezen egy tulajdonságban tér el a két utasítás egymástól, szóval minden esetben a konkrét feladattól függ, hogy melyiket érdemes használni. Ha valami olyat szeretnénk átemelni, amelynek futása során nem megengedett a hiba (például adatbáziskapcsolódás), akkor a require-t kell használnunk. Ellenben, ha az átemelt elem futása során fellépő hibák nem befolyásolják a végeredményt, akkor elegendő lehet számunkra az include is.
include használata PHP-ban
Most pedig bemutatjuk az include utasítás szintaktikáját, illetve egy rávonatkozó példát is.
Szintaxis
include 'FÁJLNÉV';
Code language: PHP (php)
Az „include” kulcsszó után szimplán adjuk meg annak a PHP fájlnak a nevét, amelynek a tartalmát szeretnénk beilleszteni az aktuális PHP fájlba.
Példa include használatára
fejlec.php
<?php
echo "<center>Ez a WEBiskola hivatalos weboldala.</center>";
?>
Code language: HTML, XML (xml)
oldal.php
<html>
<body>
<?php include 'fejlec.php'; ?>
<p>Ez egy aloldal.</p>
</body>
</html>
Code language: HTML, XML (xml)
Eredmény
Ez a WEBiskola hivatalos weboldala.
Ez egy aloldal.
A példában láthatjuk, hogy ahol include-oltuk a „fejlec.php”-t pontosan oda töltődött be a tartalma.
require használata PHP-ban
Most pedig bemutatjuk az require utasítás szintaxisát, illetve egy rávonatkozó példát is.
Szintaxis
require 'FÁJLNÉV';
Code language: JavaScript (javascript)
Az „require” kulcsszó után szimplán adjuk meg annak a PHP fájlnak a nevét, amelynek a tartalmát szeretnénk beilleszteni a jelenleg kódolt PHP fájlba.
Példa require használatára
fejlec.php
<?php
echo "<center>Ez a WEBiskola hivatalos weboldala.</center>";
?>
Code language: HTML, XML (xml)
oldal.php
<html>
<body>
<?php require 'fejlec.php'; ?>
<p>Ez egy aloldal.</p>
</body>
</html>
Code language: HTML, XML (xml)
Eredmény
Ez a WEBiskola hivatalos weboldala.
Ez egy aloldal.
A példában láthatjuk, hogy ahol a „fejlec.php” tartalma pontosan oda töltődött be, ahol a require utasítást használtuk. (Természetesen a szkript ugyanazt csinálja, mint az include esetében, hiszen működésben nincs eltérés a kettő között, kivéve a fent említett eltérést.)
include_once és require_once
Mind az include-nak és a require-nek létezik egy speciális változata, amely a „_once” kiegészítést kapta. Ezek teljes egészében ugyanúgy működnek, mint a fent említett változataik, csak itt van egy olyan kitétel, hogy csak egyetlen egyszer lehet egy fájlt beilleszteni. Azaz, ha egyszer egy fájlt már beillesztettem (include_once vagy require_once segítségével) egy oldalba, akkor azt később már nem tehetem meg.
Szintaxis
require_once 'FÁJLNÉV';
// VAGY
include_once 'FÁJLNÉV';
Code language: PHP (php)
A szintaxis nem változik, csak kiegészül a „_once” taggal.
Példa
fejlec.php
<?php
echo "<center>Ez a WEBiskola hivatalos weboldala.</center>";
?>
Code language: HTML, XML (xml)
lablec.php
<?php
echo "<center>WEBiskola lábléc</center>";
?>
Code language: HTML, XML (xml)
oldal.php
<html>
<body>
<?php include_once 'fejlec.php'; ?>
<?php include_once 'fejlec.php'; ?>
<p>Ez egy aloldal.</p>
<?php require_once 'lablec.php'; ?>
<?php require_once 'lablec.php'; ?>
</body>
</html>
Code language: HTML, XML (xml)
Eredmény
Ez a WEBiskola hivatalos weboldala.
Ez egy aloldal.
WEBiskola lábléc
A fenti példában láthattuk, hogy hiába próbáltuk többször include-olni vagy require-olni az adott fájlt, képtelenek voltunk rá, hiszen az csak egyszer jelent meg.