Różnica pomiędzy funkcjami require() i include() w PHP

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 zasadniczą różnicą między nimi jest to, że require() wygeneruje błąd krytyczny (E_COMPILE_ERROR), w przypadku gdy nie jest w stanie znaleźć konkretnego pliku w określonej lokalizacji 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 fukcji 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><br> &nbsp;&nbsp;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!

 

Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Więcej informacji

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close