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_onceper 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_onceper 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.