I tried this code:
<?php
$numtests = 1000;
global $arr;
$arr = array();
function myrequire($filename) {
global $arr;
if(in_array($filename,$arr))
return;
require($filename);
array_push($arr,$filename);
}
$start = microtime(true);
for($i=1; $i<=$numtests; $i++) {
require_once('inc.php');
require_once('inc1.php');
require_once('inc2.php');
require_once('inc3.php');
require_once('inc4.php');
require_once('inc5.php');
require_once('inc6.php');
require_once('inc7.php');
require_once('inc8.php');
require_once('inc9.php');
}
$end = microtime(true);
$ex = $end - $start;
echo "\n\n with require_once $ex \n\n";
$start = microtime(true);
for($i=1; $i<=$numtests; $i++) {
myrequire('inc.php');
myrequire('inc1.php');
myrequire('inc2.php');
myrequire('inc3.php');
myrequire('inc4.php');
myrequire('inc5.php');
myrequire('inc6.php');
myrequire('inc7.php');
myrequire('inc8.php');
myrequire('inc9.php');
}
$end = microtime(true);
$ex = $end - $start;
echo "\n\n with myrequire $ex \n\n";
?>
...and the winner is by far the homemade version:
with require_once 0.179884910583
with myrequire 0.0404860973358
at least on my pc. Am I missing anything?