Ten wpis wyjaśni różnicę pomiędzy dwiema funkcjami w PHP: include() oraz require(). Z pozoru obydwie wykonują tą samą czynność, dołączają plik do skryptu, jednak jest zasadnicza różnica między nimi. W przypadku gdy nie jest w stanie znaleźć konkretnego pliku w określonej lokalizacji require() wygeneruje błąd krytyczny (E_COMPILE_ERROR) i zatrzyma wykonywanie skryptu. Natomiast include() wyświetli ostrzeżenie (E_WARNING) jednak nie zatrzyma wykonywania skryptu.
Składnia obu funkcji wygląda tak samo.
include('filename'); require('filename');
include() :
Załóżmy, że mamy zamiar dodać plik helper.php przy użyciu funkcji include() podając nieistniejącą lokalizację. Pojawi się ostrzeżenie, ale jednocześnie nadal będzie wykonywany kod skryptu zawarty w kolejnych liniach.
index.php
<?php include("Helper1.php"); echo "<br>This is Index File"; ?>
Po otwarciu powyższego zobaczymy 2 ostrzeżenia: „Failed to open stream AND Failed to open File”, ale pod nim dodany przez nas tekst w funkcji echo(). Funkcja include() nie zatrzyma wykonywania kodu.
require() :
Jeśli użyjemy funkcji require() zamiast include() to wyrzuci ona błąd krytyczny, zatrzyma wykonywanie kodu, a co za tym idzie nie zobaczymy tekstu dodanego w funkcji echo().
Kiedy używać funkcji require(), a kiedy include()?
Funkcja require() powinna być wykorzystywana gdy plik jest wymagany przez aplikację, aby kontynuować wykonywanie następnego kroku, jak np. plik komunikatów szablonu, plik zawierający zmienne konfiguracyjne do połączenia z bazą danych.
Funkcja include() powinna być użyta, gdy plik nie jest ważny aby przejść do następnego kroku dla aplikacji. Zazwyczaj jest mądrze dodawać w ten sposób zewnętrzne pliki jednak zależy to ściśle od sytuacji.
Mam nadzieję, że ten wpis pomógł Wam zrozumieć różnicę pomiędzy tymi dwiema funkcjami. Zachęcam do komentowania!