Jednokrotne dołączanie plików w PHP
Załóżmy, że mamy plik pow.php, w którym
przechowywany jest zestaw funkcji:
<?php
function square($num) {
return $num ** 2;
}
function cube() {
return $num ** 3;
}
?>
Załóżmy, że używamy funkcji z pliku pow.php
w pliku 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;
}
?>
Załóżmy, że w głównym pliku dołączamy oba pliki z funkcjami:
<?php
require 'pow.php';
require 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Jednak czeka nas problem. Do pliku
index.php plik pow.php będzie
dołączony dwa razy: bezpośrednio i przez plik
sum.php.
Spowoduje to problem, ponieważ będziemy mieli dwa zestawy funkcji o tych samych nazwach.
Aby rozwiązać problem, należy dołączać wszystkie
pliki za pomocą operatora require_once
- będzie on dołączał plik tylko raz,
ignorując powtórne dołączenia:
<?php
require_once 'pow.php';
require_once 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Stwórz kilka plików z przydatnymi zestawami funkcji. Dołącz te pliki do siebie nawzajem i do swojego głównego pliku.