Еднократно вклучување на датотеки во 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]);
?>
Направете неколку датотеки со корисни сетови на функции. Вклучете ги овие датотеки една во друга и во вашата главна датотека.