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が2回読み込まれることになります:直接1回と、ファイルsum.phpを介してもう1回です。
これにより、同じ名前の関数セットが2つ存在することになり、問題が発生します。
この問題を解決するには、すべてのファイルを演算子require_onceを使用して読み込む必要があります。この演算子はファイルを一度だけ読み込み、重複する読み込みを無視します:
<?php
require_once 'pow.php';
require_once 'sum.php';
echo square(3) + squareSum([1, 2, 3]);
?>
便利な関数セットを持つ複数のファイルを作成してください。これらのファイルを互いに、そしてメインファイルに読み込んでください。