Engångsincludering av filer i PHP

Låt oss säga att vi har en fil pow.php, där en uppsättning funktioner lagras:

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

Låt oss säga att vi använder funktionerna från 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;
  }
?>

Låt oss säga att vi inkluderar båda filer med funktioner i huvudfilen:

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

Men vi har ett problem. Filen pow.php kommer att inkluderas till index.php två gånger: direkt och via filen sum.php.

Detta kommer att leda till ett problem, eftersom vi kommer att ha två uppsättningar funktioner med samma namn.

För att lösa problemet bör alla filer inkluderas med operatorn require_once - den kommer bara att inkludera filen en gång, och ignorera upprepade inkluderingar:

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

Skapa flera filer med användbara uppsättningar av funktioner. Inkludera dessa filer i varandra och i din huvudfil.