Еднократно включване на файлове в PHP
Да предположим, че имаме файл pow.php, в който
се съхранява набор от функции:
<?php
function square($num) {
return $num ** 2;
}
function cube() {
return $num ** 3;
}
?>
Да предположим, че използваме функциите от файла pow.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;
}
?>
Да предположим, че в основния файл включваме и двата файла с функции:
<?php
require 'pow.php';
require 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Въпреки това, ни очаква проблем. Към файла
index.php файлът pow.php ще бъде
включен два пъти: самостоятелно и чрез файла
sum.php.
Това ще доведе до проблем, тъй като ще имаме два набора функции с еднакви имена.
За решаване на проблема трябва да включваме всички
файлове чрез оператора require_once
- той ще включва файла само веднъж,
игнорирайки повторни включвания:
<?php
require_once 'pow.php';
require_once 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Създайте няколко файла с полезни набори от функции. Включете тези файлове един в друг и във вашия основен файл.