Jednorázové připojení souborů v PHP
Předpokládejme, že máme soubor pow.php, ve kterém
je uložena sada funkcí:
<?php
function square($num) {
return $num ** 2;
}
function cube() {
return $num ** 3;
}
?>
Předpokládejme, že používáme funkce ze souboru pow.php
v souboru 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;
}
?>
Předpokládejme, že v hlavním souboru připojujeme oba soubory s funkcemi:
<?php
require 'pow.php';
require 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Čeká nás však problém. K souboru
index.php bude soubor pow.php
připojen dvakrát: samostatně a prostřednictvím souboru
sum.php.
To povede k problému, protože budeme mít dvou sad funkcí se stejnými názvy.
K vyřešení problému je třeba připojovat všechny
soubory pomocí operátoru require_once
- ten připojí soubor pouze jednou,
a ignoruje opakovaná připojení:
<?php
require_once 'pow.php';
require_once 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Vytvořte několik souborů s užitečnými sadami funkcí. Připojte tyto soubory k sobě navzájem a k vašemu hlavnímu souboru.