parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

"Каждый метод должен будет или возвращать результат через $result во всех вариантах своего выполнения или не использовать $result вовсе."

moko 19.06 14:40 / 19.06 14:40

Так с версии 3.4.0. Проблема решается добавлением $result[] в начале метода.

Вообще в приведенном коде есть тонкий момент. Конструкция ^return[] не возвращает пустой результат. Она осуществляет выход из метода, а результатом его работы будет весь вывод до вызова ^return[], то есть переносы строк и два пробела (это легко увидеть, добавив туда непробельный символ). То есть если бы в вашем коде было ^return[z], все бы работало корректно. Получается в парсере сейчас нет официальной возможности вернуть пустой результат, кроме обходных вариантов типа использования пустой переменной (^return[$empty]).

Что с этим сделать без потери совместимости и чтобы было логично - пока непонятно. :( Придумываются только странные варианты типа ^return[;]