mirror of
https://github.com/php/php-src.git
synced 2024-11-26 11:23:47 +08:00
50 lines
1022 B
PHP
Executable File
50 lines
1022 B
PHP
Executable File
<?php
|
|
|
|
/** @file autoload.inc
|
|
* @ingroup Examples
|
|
* @brief function __autoload
|
|
* @author Marcus Boerger
|
|
* @date 2003 - 2005
|
|
*
|
|
* SPL - Standard PHP Library
|
|
*/
|
|
|
|
/** \internal
|
|
* Tries to load class $classname from directory $dir.
|
|
*/
|
|
function __load_class($classname, $dir)
|
|
{
|
|
$file = $dir . '/' . $classname . '.inc';
|
|
if (file_exists($file))
|
|
{
|
|
require_once($file);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* @brief Class loader for SPL example classes
|
|
* @author Marcus Boerger
|
|
* @version 1.0
|
|
*
|
|
* Loads classes automatically from include_path as given by ini or from
|
|
* current directory of script or include file.
|
|
*/
|
|
function __autoload($classname) {
|
|
$classname = strtolower($classname);
|
|
$inc = split(':', ini_get('include_path'));
|
|
$inc[] = '.';
|
|
$inc[] = dirname($_SERVER['PATH_TRANSLATED']);
|
|
foreach($inc as $dir)
|
|
{
|
|
if (__load_class($classname, $dir))
|
|
{
|
|
fprintf(STDERR, 'Loading class('.$classname.")\n");
|
|
return;
|
|
}
|
|
}
|
|
fprintf(STDERR, 'Class not found ('.$classname.")\n");
|
|
}
|
|
|
|
?>
|