Deutsch

Net C или PHP/MySQL?

15.12.05 19:20
Re: Net C или PHP/MySQL?
 
voxel3d Мальчик ветра
voxel3d
в ответ Murr 14.12.05 22:12
> Вот скажем как организовать подстановку контента посредством вызова виртуального метода в РНР3/4?
Как, как, обыкновенно. Там даже нет необходимости иметь наследование и, соответственно, виртуальные методы для этого. Вы можете написать:
В ответ на:
$obj = & new DerivedA(,0);
$obj->foo(,0);
$obj = & new DerivedB(,0);
$obj->foo(,0);


и все дела. Классы DerivedA, DerivedB могут быть вообще никак не связаны наследованием от общего предка, главное, чтобы они оба имели метод foo().
Не хотите так, можете сделать так:
В ответ на:
$derivedA = 'print "DerivedA::foo";';
$derivedB = 'print "DerivedB::foo";';
$funct = create_function(NULL, &$derivedA,0);
$funct(,0);
$funct = create_function(NULL, &$derivedB,0);
$funct(,0);


А если очень хочется, можно и вот так сделать:
В ответ на:
class Hoge {
function set(&$funct)
{
$this->lambda = $funct;
}

function call()
{
$ref = &$this->lambda;
$ref(,0);
}
}
$hoge = & new Hoge(,0);
$something = 'Hello, World!';
$hoge->set(create_function(NULL, "print '$something';"),0);
$hoge->call(,0);


Этих возможностей достаточно?
Dropbox - средство синхронизации и бэкапа файлов.
 

Перейти на