Engangsincludering av filer i PHP

La oss si at vi har en fil pow.php hvor et sett med funksjoner er lagret:

pow.php<?php
  function square($num) {
    return $num ** 2;
  }
  
  function cube($num) {
    return $num ** 3;
  }
?>

La oss si at vi bruker funksjonene fra filen pow.php i filen sum.php:

sum.php<?php
  require 'pow.php';
  
  function squareSum($arr) {
    $res = 0;
    
    foreach ($arr as $elem) {
      $res += square($elem);
    }
    
    return $res;
  }
  
  function cubeSum($arr) {
    $res = 0;
    
    foreach ($arr as $elem) {
      $res += cube($elem);
    }
    
    return $res;
  }
?>

La oss si at i hovedfilen inkluderer vi begge filene med funksjoner:

index.php<?php
  require 'pow.php';
  require 'sum.php';
  
  echo square(3) + squareSum([1, 2, 3]);
?>

Imidlertid venter det et problem på oss. Til filen index.php vil filen pow.php bli inkludert to ganger: direkte og via filen sum.php.

Dette vil føre til et problem, ettersom vi vil ha to sett med funksjoner med identiske navn.

For å løse problemet bør alle filer inkluderes via operatoren require_once - den vil kun inkludere filen én gang, og ignorere gjentatte inkluderinger:

index.php<?php
  require_once 'pow.php';
  require_once 'sum.php';
  
  echo square(3) + squareSum([1, 2, 3]);
?>
Задание 1

Opprett flere filer med nyttige sett av funksjoner. Inkluder disse filene til hverandre og til hovedfilen din.