Еднократно включване на файлове в PHP

Да предположим, че имаме файл pow.php, в който се съхранява набор от функции:

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

Да предположим, че използваме функциите от файла pow.php във файл 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;
  }
?>

Да предположим, че в основния файл включваме и двата файла с функции:

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

Въпреки това, ни очаква проблем. Към файла index.php файлът pow.php ще бъде включен два пъти: самостоятелно и чрез файла sum.php.

Това ще доведе до проблем, тъй като ще имаме два набора функции с еднакви имена.

За решаване на проблема трябва да включваме всички файлове чрез оператора require_once - той ще включва файла само веднъж, игнорирайки повторни включвания:

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

Създайте няколко файла с полезни набори от функции. Включете тези файлове един в друг и във вашия основен файл.