За последние 24 часа нас посетил 16631 программист и 1646 роботов. Сейчас ищут 1433 программиста ...

нужна помощь срочно!

Тема в разделе "PHP для новичков", создана пользователем Limbo, 28 окт 2014.

  1. Limbo

    Limbo Новичок

    С нами с:
    27 окт 2014
    Сообщения:
    4
    Симпатии:
    0
    вылазит ошибка Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in Z:\home\localhost\www\system\start.php on line 30
    вот код
    Код (Text):
    1. <?php
    2.  
    3. /**
    4.  * @author: Artem-nk
    5.  * @icq: 650128359
    6.  * @site: no
    7.  */
    8.  
    9. /*
    10.  * Базовые параметры PHP
    11.  */
    12. Error_Reporting(E_ALL | E_STRICT);          # Отображение ошибок
    13. ini_set('register_globals', '0');           # Off глобал. переменные
    14. date_default_timezone_set('Europe/Kiev');   # Часовой пояс
    15. mb_internal_encoding('UTF-8');              # Кодировка скрипта
    16.  
    17. /*
    18.  * Задаём значения константам
    19.  */
    20. define('StartTime', microtime(TRUE));                   # Старт времени PGen.
    21. define('DS', DIRECTORY_SEPARATOR);                      # Сепаратор
    22. define('SYSPATH', realpath(dirname(__FILE__)) . DS);    # Системная папка
    23. define('ROOTPATH', dirname(SYSPATH) . DS);              # Корневая папка
    24. define('MODPATH', ROOTPATH . 'modules' . DS);           # Папка с модулями
    25.  
    26. /*
    27.  * Автозагрузка Классов
    28.  */
    29. spl_autoload_register(
    30.     function ($name) {
    31.         $FILE_SYS = SYSPATH . 'classes' . DS . $name . '.class.php';
    32.         if (file_exists($FILE_SYS)) {
    33.             require $FILE_SYS;
    34.         } elseif (file_exists(MODPATH . Vars::$MODULE . DS . '_classes' . DS . $name . '.class.php')) {
    35.             require MODPATH . Vars::$MODULE . DS . '_classes' . DS . $name . '.class.php';
    36.         } else {
    37.             exit('Ошибка: класс <b>' . $name . '</b> не найден!');
    38.         }
    39.     }
    40. );
    41.  
    42. /*
    43.  * Инициализируем системный класс
    44.  */
    45. new System;
    46.  
    47. /*
    48.  * Определение темы
    49.  */
    50. define('THEME', Vars::$HOME_URL . '/system/themes/' . Vars::$THEME);
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в приведённом куске косяков вроде нет. ищи раньше.
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    в spl_autoload_register анонимные функции можно только с версии 5.3+ использовать. видимо обновить версию пхп ибо уже далеко от релиза 5.3
     
  4. Limbo

    Limbo Новичок

    С нами с:
    27 окт 2014
    Сообщения:
    4
    Симпатии:
    0
    а понятней можно?
     
  5. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    а, что тут понятнее, у тебя устаревшая версия РНР, нужна 5.3 или выше.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    да, я забываю что ФОРУМ.ПХП.РУ и ГУГЛ являются первоисточниками информации по языку программирования пхп.
    итак. регистрация автолоуда работает так:
    Код (Text):
    1. // объявляем автолоудер
    2. function my_autoloader($class) {
    3.     include 'classes/' . $class . '.class.php';
    4. }
    5.  
    6. // регистрируем автолоудер в системе передавая имя функции обычной строкой
    7. spl_autoload_register('my_autoloader');
    а начиная с версии 5.3 можно делать так:
    Код (Text):
    1. // регистрируем автолоудер в системе передавая создаваемую налету анонимную функци
    2. spl_autoload_register(function ($class) {
    3.     include 'classes/' . $class . '.class.php';
    4. });
    вообще не сложно было. знаете откуда примеры? со страницы мануала (см пример 1) (тут надо заметить что дебильные настройки конкретного форума зачем-то отправляют на свою копию мануала, которая в отличии от офф.сайта не содержит нужной информации... поэтому держите ссылочку текстом: хатэтэпэ:// php.net / manual / ru / function.spl-autoload-register.html#example-3995)

    далее включаем логику. если на объявление анонимной функции при регистрации автолоудера у вас ругается ошибкой парсера значит у вас версия пхп ниже 5.3. что удивительно, ведь текущий стабильный релиз - 5.6.2.

    теперь вам стал понятен мой первый ответ?