Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как скопировать объект в новый из самого класса? 
:(
    Опции темы
Win MK 32
Дата 1.10.2012, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Есть объект $test созданный из класса vars. Как из метода этого класса сделать независимую копию объекта в новую переменную, чтобы образовался объект $test2?
Не из основного кода, а из кода, который описан в самом классе!
Как это сделать?

Создавать новый объект из основного кода - не катит, потому что я упростил пример. А на самом деле код класса делает много всего другого для "нового случая" и не ограничивается копированием объекта.
Код

                    $test = new vars();
                    $test->copy_var("test2");
                    $test->set_some("456");
                    echo $test2->get_some(); // Должно вывести 123
class vars {
    protected some_var = "123";

    function set_some($value){
        $this->some_var=$value;
    }

    function get_some(){
        return $this->some_var;
    }

    function copy_var($){
        // ???
    }
}


Это сообщение отредактировал(а) Win MK 32 - 1.10.2012, 23:59
PM   Вверх
ksnk
Дата 2.10.2012, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



Клонировать, что ли?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
baldina
Дата 2.10.2012, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



PM MAIL   Вверх
Win MK 32
Дата 13.10.2012, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Нет, не клонировать...

Добавлено через 1 минуту и 17 секунд
Ну и если да, то из самого классса. Последний код - наиболее близок. Но все равно лишь обходной путь. Решено большинство задач, но не сама задача.
PM   Вверх
skyboy
Дата 13.10.2012, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



странная задача.
нафига тебе изнутри метода объекта менять данные на уровне выше(создавать переменную с указанным именем в контексте вызывающего кода)?
не, ну, можно
Код

class vars {
    protected $some_var = "123";
    function set_some($value){
        $this->some_var=$value;
    }
    function get_some(){
        return $this->some_var;
    }
    function copy_var(&$var){
        $var = clone $this;
    }
}

$test = new vars();
$test->copy_var($test2);
$test->set_some("456");
echo $test2->get_some(); // Должно вывести 123

но, как на меня, такое — архитектурный просчет.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.