Eenmalig includeren van bestanden in PHP
Stel we hebben een bestand pow.php, waarin
een verzameling functies staat:
<?php
function square($num) {
return $num ** 2;
}
function cube() {
return $num ** 3;
}
?>
Stel we gebruiken de functies uit bestand pow.php
in bestand 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;
}
?>
Stel dat we in het hoofdbestand beide bestanden met functies includeren:
<?php
require 'pow.php';
require 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Er wacht ons echter een probleem. Voor het
bestand index.php zal het bestand pow.php
twee keer worden geïncludeerd: op zichzelf en via het bestand
sum.php.
Dit zal tot een probleem leiden, omdat we dan twee sets functies met dezelfde namen hebben.
Om het probleem op te lossen, moeten alle
bestanden worden geïncludeerd via de operator require_once
- deze zal een bestand slechts één keer includeren,
en herhaalde inclusies negeren:
<?php
require_once 'pow.php';
require_once 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Maak meerdere bestanden met nuttige sets functies. Includeer deze bestanden in elkaar en in je hoofdbestand.