Еднократно вклучување на датотеки во 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

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