За последние 24 часа нас посетили 20242 программиста и 1080 роботов. Сейчас ищут 748 программистов ...

Не работает функция

Тема в разделе "PHP для новичков", создана пользователем Indzheredi, 15 мар 2023.

  1. Indzheredi

    Indzheredi Новичок

    С нами с:
    15 мар 2023
    Сообщения:
    3
    Симпатии:
    0
    Доброго времени суток! Не пойму почему не работает функция, хотя пример из книжки:
    PHP:
    1. Translate::lookupO;
    2. class Translate
    3. {
    4. const ENGLISH = 0;
    5. const SPANISH = 1;
    6. const FRENCH = 2;
    7. const GERMAN = 3;
    8. // ...
    9. }
    10. Static function lookup()
    11. {
    12. echo self::SPANISH;
    13. }
    IDE пишет :
    "message": "Syntax error: unexpected token 'lookup'",
    Unexpected 'Name'. Expected
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    обрати внимание на фигурные скобки. ты не делаешь отступов, поэтому не видишь что функция объявлена не в классе. подозреваю что причина в этом.

    вообще запомни: когда видишь слово "unexpected" т.е. "неожиданный", то ошибка где-то ДО ЭТОГО. что-то было пропущено или наоборот лишнее произошло выше по тексту, поэтому данное слово или символ получился не к месту.
    --- Добавлено ---
    и не надо писать ключевые слова вроде static с большой буквы.
     
    Indzheredi нравится это.
  3. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    А ещё кажется в первой строке lookup0 (обращение к константе) на самом деле должно быть lookup() - вызов метода. Но это не точно - не весь код класса предоставлен
     
    Indzheredi нравится это.
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    стопудов чувак с книжки набирал... не понимая... ему одинаково что () что 0 ))))
     
    Indzheredi нравится это.
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    судя по первой строке Translate::lookupO;

    Чувак в коде зафарчмачил функцию за пределы тела класса Translate

    Эх.. если бы не первая строка, я тогда подумал что Чувак запидорил self вместо Translate
    --- Добавлено ---
    бл9 +
     
  6. Indzheredi

    Indzheredi Новичок

    С нами с:
    15 мар 2023
    Сообщения:
    3
    Симпатии:
    0
    Спасибо, я действительно не видел разницы, только учусь. Дело в нуле вместо скобок.
     
  7. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    но текст ошибки не про этот кейс )))
     
  8. Indzheredi

    Indzheredi Новичок

    С нами с:
    15 мар 2023
    Сообщения:
    3
    Симпатии:
    0
    Может быть.))) Все примеры из главы писал в одном файле(и где то коментировал и раскоментировал).