Tiedostojen kertaluonteinen liittäminen PHP:ssä
Oletetaan, että meillä on tiedosto pow.php, jossa
säilytetään joukko funktioita:
<?php
function square($num) {
return $num ** 2;
}
function cube() {
return $num ** 3;
}
?>
Oletetaan, että käytämme tiedoston pow.php
funktioita tiedostossa 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;
}
?>
Oletetaan, että päättiedostossa liitämme molemmat funktiotiedostot:
<?php
require 'pow.php';
require 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Meitä odottaa kuitenkin ongelma. Tiedostoon
index.php tiedosto pow.php tulee
liitettäväksi kahdesti: itsenäisesti ja tiedoston
pow.php kautta.
Tämä aiheuttaa ongelman, koska meillä on kaksi samannimistä funktiojoukkoa.
Ongelman ratkaisemiseksi kaikki tiedostot tulee
liittää operaattorilla require_once
- se liittää tiedoston vain kerran,
ohittaen toistuvat liittämiset:
<?php
require_once 'pow.php';
require_once 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
Tee useita tiedostoja hyödyllisillä funktiojoukoilla. Liitä nämä tiedostot toisiinsa ja päättiedostoosi.