parser

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

 

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

Ответ

moko 17.02.2021 02:54

Ну, это совсем магия с отбрасыванием части результата.
Сомневаюсь, что кто-то такое осознанно использует.
Вот потому и подумалось, что стоит эту магию убрать. :) И вроде как это оказалось возможно не ломая ничего другого.
свидетельствует о наличии подобной проверки.
Не совсем. Тогда появились оптимизации, которые 1. игнорируют весь строковый вывод метода, если в первом вызове метода использовался $result. 2. Вообще не анализируют $result, если он не использовался при первом вызове. Это эффективные оптимизации, но если не соблюдать указанное правило, поведение будет не совсем очевидным (мягко скажем). Например:
@main[]
0. ^test[0]
1. ^test[1]
0. ^test[0]
1. ^test[1]

1. ^test-copy[1]
0. ^test-copy[0]
1. ^test-copy[1]
0. ^test-copy[0]

@test[n]
output ^if($n){$result[result]}

@test-copy[n]
output ^if($n){$result[result]}
Вернет
0. output
1. output
0. output
1. output

1. result
0.
1. result
0.