[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отложенные вычисления
rav
Собственно, насколько малой кровью в PHP возможен subj? Может готовые решения какие на эту тему есть?




Спустя 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]
Если же не гнаться за формальным синтаксисом, то отложенные вычисления спокойно реализуются внутри функций и методов.


Тот псевдокод из моего предыдущего поста я и писал для того чтобы показать что отложенные вычисления действительно легко и логично реализуются через методы.

Воспользуюсь пропертями, которых нетsmile.gif.

Чтото типа
Код
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
Только причем тут отложенные вычисления? smile.gif

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

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


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.