вылазит ошибка Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in Z:\home\localhost\www\system\start.php on line 30 вот код Код (Text): <?php /** * @author: Artem-nk * @icq: 650128359 * @site: no */ /* * Базовые параметры PHP */ Error_Reporting(E_ALL | E_STRICT); # Отображение ошибок ini_set('register_globals', '0'); # Off глобал. переменные date_default_timezone_set('Europe/Kiev'); # Часовой пояс mb_internal_encoding('UTF-8'); # Кодировка скрипта /* * Задаём значения константам */ define('StartTime', microtime(TRUE)); # Старт времени PGen. define('DS', DIRECTORY_SEPARATOR); # Сепаратор define('SYSPATH', realpath(dirname(__FILE__)) . DS); # Системная папка define('ROOTPATH', dirname(SYSPATH) . DS); # Корневая папка define('MODPATH', ROOTPATH . 'modules' . DS); # Папка с модулями /* * Автозагрузка Классов */ spl_autoload_register( function ($name) { $FILE_SYS = SYSPATH . 'classes' . DS . $name . '.class.php'; if (file_exists($FILE_SYS)) { require $FILE_SYS; } elseif (file_exists(MODPATH . Vars::$MODULE . DS . '_classes' . DS . $name . '.class.php')) { require MODPATH . Vars::$MODULE . DS . '_classes' . DS . $name . '.class.php'; } else { exit('Ошибка: класс <b>' . $name . '</b> не найден!'); } } ); /* * Инициализируем системный класс */ new System; /* * Определение темы */ define('THEME', Vars::$HOME_URL . '/system/themes/' . Vars::$THEME);
в spl_autoload_register анонимные функции можно только с версии 5.3+ использовать. видимо обновить версию пхп ибо уже далеко от релиза 5.3
да, я забываю что ФОРУМ.ПХП.РУ и ГУГЛ являются первоисточниками информации по языку программирования пхп. итак. регистрация автолоуда работает так: Код (Text): // объявляем автолоудер function my_autoloader($class) { include 'classes/' . $class . '.class.php'; } // регистрируем автолоудер в системе передавая имя функции обычной строкой spl_autoload_register('my_autoloader'); а начиная с версии 5.3 можно делать так: Код (Text): // регистрируем автолоудер в системе передавая создаваемую налету анонимную функци spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php'; }); вообще не сложно было. знаете откуда примеры? со страницы мануала (см пример 1) (тут надо заметить что дебильные настройки конкретного форума зачем-то отправляют на свою копию мануала, которая в отличии от офф.сайта не содержит нужной информации... поэтому держите ссылочку текстом: хатэтэпэ:// php.net / manual / ru / function.spl-autoload-register.html#example-3995) далее включаем логику. если на объявление анонимной функции при регистрации автолоудера у вас ругается ошибкой парсера значит у вас версия пхп ниже 5.3. что удивительно, ведь текущий стабильный релиз - 5.6.2. теперь вам стал понятен мой первый ответ?