Јединствени прикључак датотека у 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

Направите неколико датотека са корисним скуповима функција. Прикључите ове датотеке једну на другу и на вашу главну датотеку.