Tiedostojen kertaluonteinen liittäminen PHP:ssä

Oletetaan, että meillä on tiedosto pow.php, jossa säilytetään joukko funktioita:

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

Oletetaan, että käytämme tiedoston pow.php funktioita tiedostossa 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;
  }
?>

Oletetaan, että päättiedostossa liitämme molemmat funktiotiedostot:

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

Meitä odottaa kuitenkin ongelma. Tiedostoon index.php tiedosto pow.php tulee liitettäväksi kahdesti: itsenäisesti ja tiedoston pow.php kautta.

Tämä aiheuttaa ongelman, koska meillä on kaksi samannimistä funktiojoukkoa.

Ongelman ratkaisemiseksi kaikki tiedostot tulee liittää operaattorilla require_once - se liittää tiedoston vain kerran, ohittaen toistuvat liittämiset:

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

Tee useita tiedostoja hyödyllisillä funktiojoukoilla. Liitä nämä tiedostot toisiinsa ja päättiedostoosi.