<?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() - вообще неопределен.
__clone() - вообще неопределен.
Спустя 2 часа, 8 минут, 49 секунд (21.03.2011 - 10:03) linker написал(а):
__clone(), а не __clon().
Спустя 1 минута, 53 секунды (21.03.2011 - 10:05) Andrey65 написал(а):
да, как всегда все простая невнимательность.

_____________