parser

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

 

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

Ответ

Misha v.3 08.12.2014 14:25

чтобы узнать, инициализировано-ли поле у произвольного объекта, вначале надо убедиться, что объект позволяет доступ к своим свойствам (string не имеет свойств, соотв. доступа к ним не может быть по определениюб но я предлагал workaround с try).

при этом reflection-ы не особо помогут, т.к. есть GET_DEFAULT, который может вернуть что-то при обращении чуть-ли не к любому полю (т.е. $obj.field значение вернут, а при ^hash::create[$obj] там field не будет).

т.е. в применении к парсеру ваша задача не может быть решена.
я не могу передать ссылку на объект,
потому что при одной лишь попытке
^def[$string.sub] - выпадет обращение к нес.полю[/quot]

ссылку передать можно (точнее передать объект по ссылке): ^def[$object] но вы не пытаетесь передать ссылку. вы лезете в поле sub объекта object (ещё до вызова вашего метода), не проверив, что это можно дела (у string нельзя)

[quote]я хочу спросить "инициализирована" ли вообще такая конечная последовательность, как объект/переменная
этот вопрос не имеет смысла для объекта типа string, т.к. полей у него нет.