volter9, если повторить поведение по подключению, то твоя функция работает в два раза дольше
<?php
function load ($file) {
$file = stream_resolve_include_path($file);
static $files = null;
$files or $files = [];
if (!isset($files[$file])) {
require $file;
$files[$file] = true;
}
}
echo 'require_once', "\n";
$start = microtime(true);
for ($x = 0; $x < 20000; $x++) {
require_once 'inc.php';
require_once './inc.php';
require_once __DIR__ . '/inc.php';
}
echo microtime(true) - $start . "\n";
echo 'load function', "\n";
$start = microtime(true);
for ($x = 0; $x < 20000; $x++) {
load('inc.php');
load('./inc.php');
load(__DIR__ . '/inc.php');
}
echo microtime(true) - $start . "\n";
require_once
0.077381134033203
load function
0.14387607574463
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации