Ответ
Misha v.3 05.02.2016 10:46
я в начале методов пишу $params[^hash::create[$params]] по другой причине. если ничего не передать (*), то там будет string. соотв. обращения к $params.field обламываются с исключением.
* возможно я не уследил и теперь, всё лучше, т.к. во первых пусые параметры передаются как void, а во вторых мы что-то делали с тем, чтобы пустая строка вела себя как void. однако есть ещё не пустые строки появляющиеся из-за форматирования кода (пробельные), которые всё равно портят жизнь. т.е. этот ^hash::create[] у меня -- это явное приведение входного параметра к хэшу.
P.S. а от изменения он толком-то и не защищает. точнее защищает только первый уровень.