Ves al contingut principal

include_once () o require_once ()

Les versions _once de include i require, anomenades include_once() i require_once(), s'utilitzen per garantir que un fitxer només s'inclogui i s'executi una única vegada en un script PHP. Aquesta funcionalitat evita errors i conflictes que podrien sorgir si el mateix arxiu fos inclòs diverses vegades accidentalment.

Per què són útils?

La principal utilitat de les variants _once és prevenir la redeclaració de classes, funcions, o constants. A PHP, si intentes definir una funció o una classe amb el mateix nom dues vegades, el script generarà un error fatal i s'aturarà.

Imagina que tens un fitxer anomenat db.php que conté la funció connectar_db() i es crida des de pagina1.php. Si posteriorment pagina1.php inclou un altre fitxer, funcions_usuari.php, que també crida include 'db.php', la funció connectar_db() es definiria dues vegades, causant un error.

require_once resol aquest problema automàticament. Comprova un registre intern de fitxers ja inclosos i, si el fitxer ja hi és, salta la inclusió.

Casos d'ús típics

Les versions _once són especialment útils en els següents escenaris:

  • Autocàrrega de classes: En sistemes basats en classes (programació orientada a objectes), és una pràctica estàndard utilitzar require_once per carregar un fitxer de classe. Això assegura que una classe només es defineix una vegada, fins i tot si es fa referència a ella des de diferents parts de l'aplicació.

  • Fitxers de configuració: Els arxius que contenen variables globals o constants (config.php) han de ser inclosos una sola vegada per evitar redefinir valors.

  • Llibreries de funcions: Quan es té un fitxer amb un conjunt de funcions auxiliars, s'utilitza require_once per garantir que les funcions estan disponibles sense risc de conflicte.

En general, require_once() és la millor pràctica i l'opció més segura en la majoria de situacions, ja que combina el comportament d'error fatal de require amb la seguretat de no incloure un fitxer duplicat.