Я пытаюсь связать объекты вместе, используя магические функции php.__isset не возвращает правильный результат
У меня есть абстрактный класс, называемый страницей, и каждая страница моего сайта расширяет этот класс. В этом абстрактном конструкторе класса я стараюсь, чтобы получить объект пользователя, как это:
public function __construct(){
$user = new user();
$this->user = $user->getIdentity();
$this->getHeader();
$this->switchAction();
$this->getFooter();
}
Теперь в моих страницах я могу использовать $ this-> пользователя и он работает все нормально. . Возвращает мне объект пользователя, если пользователь вошел в В моем пользовательском классе, у меня есть волшебная __get & __isset функции:
public function __get ($name){
switch ($name){
case 'oAlbums':
return $this->oAlbums = album::get_ar_obj($arWhere = array('user_id' => $this->id));
break;
public function __isset ($name){
switch($name){
case 'oAlbums':
echo 'magic isset called, trying to call '. $name . '<br />';
return isset($this->$name);
break;
}
}
Так что, когда на странице, я хочу, чтобы проверить, если пользователь имеет какой-либо альбомов вообще, позвонив по телефону $this->user->oAlbums
. Это возвращает массив со всеми объектами альбома, как и ожидалось. Но когда я делаю
if(empty($this->user->oAlbums))
echo 'still give smepty';
на моей странице, это еще эхо это строка из ..
Почему функция __isset не работает?
Спасибо! Работает как шарм –