class User{
static $obj = NULL;
public function __get($name)
{
return false;
}
public function __set($name, $value)
{
self::$obj->$name = $value; // почему-то не работает
}
static function auth($user){
if(true) // в оригинале тут всякие запросы, проверки и всё такое
{
$user->name = 'John';
$user->auth = true;
return true;
}
}
public function __construct(){
if(!self::auth(self::$obj)) self::$obj->auth=false;
}
static function getdata()
{
if(self::$obj == NULL) self::$obj=new User;
return self::$obj;
}
}
if(USER::getdata()->auth === true) print 'всё ок';
else print 'всё плохо';
print_r(USER::getdata()); // пусто
Спустя 4 минуты, 14 секунд (5.01.2011 - 16:25) ZSH написал(а):
public function __set($name, $value)
{
$this->$name = $value; // почему-то не работает
}
Спустя 5 минут, 10 секунд (5.01.2011 - 16:30) web-dev написал(а):
на результат это не повлияло
USER::getdata() возвращает пустой объект
USER::getdata() возвращает пустой объект
Спустя 1 день, 5 часов, 49 минут, 58 секунд (6.01.2011 - 22:20) Basili4 написал(а):
$this->name = $value; // почему-то не работает
Вот
Вот
Спустя 17 минут, 39 секунд (6.01.2011 - 22:38) linker написал(а):
Basili4
Нет, тут действительно нужно так
Нет, тут действительно нужно так
$this->$name = $valueТут сама логика неправильная. Я так понимаю имеется ввиду синглтон, если так, то реализация неправильная.
Спустя 15 часов, 15 минут, 5 секунд (7.01.2011 - 13:53) web-dev написал(а):
Да, имеется.
Короче, в метод auth вообще не надо ничего передавать, а писать в нём self::$obj->имя свойства = значение
и тогда __set будет правильно работать (без всяких $this).
Реализация не не правильная... а авторская
Короче, в метод auth вообще не надо ничего передавать, а писать в нём self::$obj->имя свойства = значение
и тогда __set будет правильно работать (без всяких $this).
Реализация не не правильная... а авторская
Спустя 6 часов, 19 минут, 47 секунд (7.01.2011 - 20:13) linker написал(а):
web-dev
Ну само-собой авторская, кабы почитал как это делается правильно, то авторство бы не изменилось, а вот реализация...
Ну само-собой авторская, кабы почитал как это делается правильно, то авторство бы не изменилось, а вот реализация...
Спустя 3 часа, 23 минуты, 28 секунд (7.01.2011 - 23:36) web-dev написал(а):
Прочитаю, у меня есть книга паттерны и шаблоны программирования
_____________
IT - это такая область, что приходится постоянно бежать вперед, чтобы оставаться на месте.