Поддержка Проблемы и решения Ошибка парсинга TRY в php?

  • get_post_meta( $post_id, TRY,1)

    php начинает на это ругаться почему? (с другими именами проблем не возникает)
    например get_post_meta( $post_id, MY_TRY,1)

    Parse error: syntax error, unexpected ‘TRY’ (T_TRY) in ….

    Как можно решить проблему не изменяя имя поля?

    • Тема изменена 4 года, 10 месяцев назад пользователем selftrips-ru.
Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Yui

    (@fierevere)

    ゆい

    try — зарезервированное слово (оператор для обработки исключений), использовать его не стоит, TRY — тоже, возможно оно используется как внутреннее значение

    в вашем коде также следует взять ключ в кавычки или апострофы

    например get_post_meta( $post_id, ‘MY_TRY’ ,1)

    мате поле TRY используется мной давно и много где.
    Соответственно не хотелось бы его менять.

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    мате поле TRY используется мной давно и много где.

    Так оберните его в кавычки (как Вам уже предложила yui) и используйте дальше.
    get_post_meta( $post_id, 'TRY', 1)

    Ок, попробую, но иногда кавычки выдают ошибку, сейчас не помню, но get_post_meta
    и update_post_meta работают по разному с кавычками, одному требуются другому нет

    другому нет

    Функции WP тут ни при чем. Для PHP с кавычками и без — разные сущности.
    'STR' и "STR" — текстовая строка
    STR — константа, определенная через define. Если не определена, может быть заменена компилятором на строку STR.
    try — оператор (см. http://php.net/manual/ru/language.exceptions.php), поэтому на строку ‘TRY’ заменен быть не может, и будучи употребленным в неподходящем месте, является синтаксической ошибкой.

    НИКОГДА не используйте строки без кавычек, ибо это чревато, как минимум, неправильной работой.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    'STR' и "STR" — текстовая строка

    Добавлю, что в двойных кавычках обрабатываются переменные типа "my $var", а в одинарных — нет. Для строк без переменных стоит всегда использовать одинарные.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Ошибка парсинга TRY в php?» закрыта для новых ответов.