Előző heti cikkünkben bemutattuk az include parancsot, melynek segítségével egyszerűen beilleszthetjük és módosíthatjuk azokat a fájlokat, amelyek minden weboldalon megjelennek — mint amilyen például a menü vagy a fejléc.
Mutattunk néhány gyakorlati példát, és megsúgtuk, hogyan kerülheted el a gyakori hibákat. A cikk végén azonban megemlítettük, hogy létezik egy nagyon hasonló parancs is, a require.
Vannak olyan esetek, amelyekben az include helyett érdemesebb a require parancsot alkalmazni. Hogy miért? Mindjárt rátérünk, előbb azonban bemutatjuk a require parancsot egy kicsit részletesebben.
A require parancs sokat segít, ha szeretnénk gyorsítani a munkánkat. Egy gyakran alkalmazott fájlt, mely minden oldalon megjelenik, nem kell mindenhova egyenként bemásolnunk. A require parancs segítségével ezt sokkal gyorsabban és egyszerűbben el tudjuk végezni. A működését illetően ugyan a require megegyezik az include paranccsal, de azok kedvéért, akik szeretnének ismételni, bemutatjuk a require parancsot is egy példán.
Vegyük a “menu.php” fájlt, melyet szeretnénk minden oldalon megjeleníteni. A fájl így fest:
Ha a fájlt szeretnénk a require parancs segítségével beilleszteni az “index.php” fájlba, azt a következőképp tehetjük meg:
A kód a böngészőben a következő eredményt mutatja:
Kezdőlap Rólunk Linkek Kapcsolat
A require parancs használatát gyakorlom!
Ha ugyanezt nemcsak az “index.php”, hanem az “about.php”, “links.php”, “contact.php” fájlokban is elvégezzük, sokat könnyíthetünk a munkánkon, ha változtatni akarunk a menün (például egy Termékeink menüpontot is hozzá szeretnénk adni), hiszen elég, ha a “menu.php” fájlon módosítunk. Ha nem használnánk ezt a parancsot, a változásokat minden egyes fájlba egyenként kellene bevinnünk, bemásolnunk.
Megállapíthatjuk, hogy a require parancs is igen hasznos, akik azonban előző cikkünket is olvasták, észrevehetik, hogy valóban nincs különbség a require és az include működése között. Miért jobb mégis az egyik, mint a másik?
Require vs. include
Megállapítottuk, hogy az include parancshoz hasonlóan a require parancsot is arra használjuk, hogy egy fájlt illesszünk a PHP-kódba. A kettő között azonban egy óriási különbség van, ami első ránézésre jelentéktelennek tűnhet. Ha az include parancs segítségével beillesztünk egy fájlt, de a PHP nem találja, egy ilyen hibaüzenetet látunk majd:
PHP-kód
Megjelenítés
Warning: main(noFileExistsHere.php): failed to open stream: No such file or directory in /home/websiteName/FolderName/Script.php on line 2
Warning: main(): Failed opening 'noFileExistsHere.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/websiteName/FolderName/Script.php on line 2
Helló Világ!
Figyeljük meg, hogy az echo parancs továbbra is működik. Ez azért van, mert a Warning (figyelmeztetés) nem akadályozza meg, hogy a PHP-script lefusson. Másrészről viszont, ha ugyanezt a require paranccsal próbáljuk meg véghezvinni, a következő történik:
PHP kód
Megjelenítés
Warning: main(noFileExistsHere.php): failed to open stream: No such file or directory in /home/websiteName/FolderName/Script.php on line 2
Fatal error: main(): Failed opening 'noFileExistsHere.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/websiteName/FolderName/Script.php on line 2
Az echo parancs nem működik, mert a script futtatása leállt a require parancs által okozott fatal error után. Ezért javasoljuk azt, hogy a require parancsot használd az include helyett, mert nincs értelme, hogy fussanak a scriptek, ha a fontos fájlok hiányoznak, vagy hibásan vannak elnevezve.
A require_once parancs
Ha egy hosszú kódban véletlenül többször is használtuk a require parancsot ugyanarra a fájlra vonatkozóan (ez leggyakrabban a funkciók esetében fordul elő), konfliktus lép fel, és a kód nem fog (helyesen) működni. Ezt a require_once paranccsal tudjuk elkerülni, mely csak egyszer fogja lekérni a fájlt, attól függetlenül, hogy a kódban több ilyen parancs is van.
Összegzés
Mai cikkünkkel befejeztük az include és a require parancsokkal való ismerkedést. Reméljük, nem találtad őket túl bonyolultnak, és abban is sikerült segítenünk, hogy eldöntsd, melyiket mikor érdemes alkalmaznod. A jövő héten egy új témába vágunk bele, tarts velünk akkor is!
NYEREMÉNYJÁTÉK!
Rovatunk elsődleges célja, hogy közelebbről is bemutassa a legismertebb webtechnológiákat. Azok között az olvasók között, akik minden héten követik rovatunkat, azaz velünk tanulják a programozás alapjait és kitöltik a feladatsort, a sorozat végén egy laptopot sorsolunk ki.
A játék heti kérdése:
A választ a tanulok@erdsoft.com e-mail-címre kell elküldeni, a tárgysorba pedig
a következőt kell beírni: HÉTNAP-TANULOK. Sok szerencsét!
Néhány szó rólunk:
Az ErdSoft (www.erdsoft.com) 2011-ben alakult meg. Csapatunkat a fiatalos lendület, a szakértelem, a folyamatos tanulás és tapasztalatgyűjtés jellemzi. Ügyfeleinknek igyekszünk teljes körű szolgáltatást nyújtani — bátran fordulhatnak hozzánk, legyen szó webfejlesztésről, alkalmazásokról, SEO-optimalizálásról, grafikai tervezésről, marketingről vagy szövegírásról. Csapatunk sikerét mi sem bizonyítja jobban, mint a több száz elkészült weboldal és a számos elégedett ügyfél Szerbiában, Magyarországon és az Egyesült Királyságban.