[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Клон
Andrey65
Вот начал скрипя зубами изучение страшного ООП. Проблемка в следующем: почему при копировании обьекта его свойства передаются клону, если по умолчанию __clone() другие? Скорей всего я что-то не так понял, поправьте и разьясните пожалуйста.


<?php
/*
ЗАДАНИЕ 4
- В классе User опишите метод __clone()
- Метод __clone() должен задавать начальные значения свойств по умолчанию при копировании объектов
- Значения свойств по умолчанию: name = "Guest", login = "guest", password = "qwerty"
- Создайте четвёртый объект скопировав один из имеющихся объектов
*/

class User{

public $name; //СВОЙСТВО
public $login;
public $password;
function __construct($name,$login,$password){ //конструктор
$this->name=$name;
$this->login=$login;
$this->password=$password;
}
function __clon(){ //клон по умолчанию
$this->name='Guest';
$this->login='guest'; //начальные значения свойств по умолчанию
$this->pass='qwerty';
}
function showInfo(){ //МЕТОД
echo "<p>Имя: ".$this->name."<br>";
echo "Логин: ".$this->login."<br>";
echo "Пароль: ".$this->password."<br>";
}

}

$User1=new User('Username1','login1','pass1'); //ОБЪЕКТ
$User1->showInfo();

$User2=new User('Username2','login2','pass2');
$User2->showInfo();

$User3=new User('Username3','login3','pass3');
$User3->showInfo();

$User4=clone $User1;
echo $User4->name; //Почему выводит Username1 а не Guest




Спустя 4 часа, 18 минут, 53 секунды (21.03.2011 - 07:54) Trianon написал(а):
__clon() - другие.
__clone() - вообще неопределен.

Спустя 2 часа, 8 минут, 49 секунд (21.03.2011 - 10:03) linker написал(а):
__clone(), а не __clon().

Спустя 1 минута, 53 секунды (21.03.2011 - 10:05) Andrey65 написал(а):
да, как всегда все простая невнимательность. rolleyes.gif


_____________
Цитата
Не стоит недооценивать предсказуемость моей тупизны
Быстрый ответ:

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