Программирование > PHP

копирование класса

(1/1)

Altaxar:
Переносил сайт с PHP4 на PHP5.
при $a- class ; $b=$a - то в PHP4 копирует класс, а PHP5 присваивает сылку на класс.
Мне нужно копировать класс, тоесть его глобальные переменные и также внутренние классы, а как это сделать под PHP5? и чтобы под PHP4 также работало.
1) Идея сделать через serialize() и unserialize(), но может есть более быстрый способ сделать копию класса?
2) сделать $b=new ... , а затем через foreach($a as $key => $val) $b[$key]=$val; или еще както, в данном случае прийдется еще и внутренние классы тоже через new создавать, тоесть через рекурсию все копировать.
Как посоветуете сделать?

hanslinger:
3) Идея сделать через clone еще есть.

Altaxar:
3) идея понравилась, но PHP4 на идею ругается :-) . PHP4, clone вообще видеть не хочет, "Parse error" выдает.
немного подумал и закинул clone в анонимную функцию :-)
и вот что получилось:
(закинул в класс который собираюсь клонировать)

function my_clone(){
return version_compare("5.0.0", phpversion(),"<")?$this->newfunc():$this;
}
function newfunc(){
$newfunc = create_function(\'$a\',\'return clone $a;\');
return $newfunc($this);
}

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии