__autoload()
- это имя магической функции, которая автоматически вызывается по умолчанию при попытке ссылки на класс, который еще не существует в пользовательской области. Это функция, а не метод класса, поэтому вы определяете это так:
function __autoload($className) {
include_once($className.'.php');
}
Если хотите, вы можете вместо этого установить собственный обработчик автозагрузки (может быть функцией или методом класса), используя spl_autoload_register()
. Например, если вы хотите дать вашему основному JMC
классу статический метод autoload()
, который обрабатывает автозагрузку файлов классов, вы должны сделать что-то вроде этого:
class JMC {
public static function autoload($className) {
include_once($className.'.php');
}
protected function foo() {}
}
spl_autoload_register('JMC::autoload');
// By referencing this class, if it doesn't yet exist then JMC's autoload()
// gets called and PHP will attempt to load JMC_files.php to look for this class
$files = new JMC_files();
$files->foo();
Где вы хотите разместить свою функцию автозагрузки, зависит от вас. Ваш основной JMC
класс звучит как разумное место для него; метод автозагрузки моего фреймворка тоже живет в основном классе.