Спустя 1 день, 33 минуты, 32 секунды (3.10.2007 - 18:23) rav написал(а):
Вот в лоб псевдокод
Код |
class MyLazyClass1 { property name1(get,set){...} property myLazyObj2(get) { switch(some) { case '1': return new MyLazyClass2(...) ...} } }; class MyLazyClass2 { property name2(get,set){...} property myLazyObj1(get) { if(some) return new MyLazyClass1(...) else return NULL; } }; var data=new MyLazyClass1(); echo 'data with all foreigns is:'; dump_recursive(data); |
Неужели PHP братство никогда в подобном не нуждалось?
Спустя 2 часа, 19 минут, 38 секунд (3.10.2007 - 20:43) vasa_c написал(а):
Нет пропертей в PHP.
Однако, можно их эмулировать путем перехвата обращений к несуществующим свойствам.
Если же не гнаться за формальным синтаксисом, то отложенные вычисления спокойно реализуются внутри функций и методов.
Однако, можно их эмулировать путем перехвата обращений к несуществующим свойствам.
Если же не гнаться за формальным синтаксисом, то отложенные вычисления спокойно реализуются внутри функций и методов.
Спустя 17 часов, 58 минут, 38 секунд (4.10.2007 - 14:41) rav написал(а):
Цитата(vasa_c @ 3.10.2007, 21:43) [snapback]27627[/snapback]
Нет пропертей в PHP.
Однако, можно их эмулировать путем перехвата обращений к несуществующим свойствам.
Однако, можно их эмулировать путем перехвата обращений к несуществующим свойствам.
Тоесть есть....
Цитата(vasa_c @ 3.10.2007, 21:43) [snapback]27627[/snapback]
Если же не гнаться за формальным синтаксисом, то отложенные вычисления спокойно реализуются внутри функций и методов.
Тот псевдокод из моего предыдущего поста я и писал для того чтобы показать что отложенные вычисления действительно легко и логично реализуются через методы.
Воспользуюсь пропертями, которых нет

Чтото типа
Код |
class Tratata { ... function __get($nm) { return makeOrFromCache(... } } $tratata=new Tratata(); echo $tratata->purumpurum->tumtum; |
То что надо, спасибо!.
Спустя 6 дней, 4 часа, 27 минут, 6 секунд (10.10.2007 - 19:08) rav написал(а):
А вот еще фичу нашел
Код |
Class virtualArray Implements ArrayAccess { function offsetExists($offset) { return ..checkKey.. } function offsetGet($offset) { return ..evalValue.. } function offsetSet($offset, $value) { } function offsetUnset($offset) { } } /////////////////////////////////////// $va = new virtualArray(); echo $va[virtualKey] |
Спустя 44 минуты, 2 секунды (10.10.2007 - 19:52) vasa_c написал(а):
Угу. Еще и итераторы есть — http://www.php.net/manual/ru/language.oop5.iterations.php
Только причем тут отложенные вычисления?
Только причем тут отложенные вычисления?

Спустя 16 часов, 5 минут, 41 секунда (11.10.2007 - 11:58) rav написал(а):
Цитата(vasa_c @ 10.10.2007, 20:52) [snapback]27856[/snapback]
Только причем тут отложенные вычисления? 

При простом синтаксисе для работы с данными имеем собственный функционал, отрабатывающий доступ к данным. В моем случае - организация бесконечных структур данных. За счет отложенных вычислений, проводимых в __get.
_____________