Enkratno vključevanje datotek v PHP

Recimo, da imamo datoteko pow.php, v kateri je shranjen niz funkcij:

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

Recimo, da uporabljamo funkcije iz datoteke pow.php v datoteki 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;
  }
?>

Recimo, da v glavni datoteki vključimo obe datoteki s funkcijami:

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

Vendar nas čaka težava. V datoteko index.php bo datoteka pow.php vključena dvakrat: enkrat direktno in še prek datoteke sum.php.

To bo povzročilo težavo, saj bomo imeli dva niza funkcij z enakimi imeni.

Za rešitev težave je treba vse datoteke vključiti z operatorjem require_once - ta bo datoteko vključil samo enkrat, pri čemer bo prezrl morebitna ponovna vključitve:

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

Naredite več datotek z uporabnimi nizi funkcij. Te datoteke medsebojno povežite in jih povežite z vašo glavno datoteko.