Лажа где-то в конечных скобках: если добавить в авто.п что-либо после этого, получаем Unhandled Exception про неожиданный конец :). Есть ли какой-то универсальный способ находить такую лажу? Второй час бьюсь.
т.к.: 1. до эксперимента не берусь предсказать поведение метода с объявленным во входный переменных переменной с именем result 2. почитайте changelog к версии 3.4.0. там говорится, что все ветки должны или использовать result, или не использовать. в вашем случае это не так (или как раз срабатывает ваш "хак" с входной переменной result? ну... удачи, конечно, но используя хаки будьте готовы править код после выходя очередной версии :) ).
P.S. ну и до кучи вычисление $r1 под ^if унесли-бы, что уж там P.P.S. а вообще прикольно.