임 매직 PHP 함수를 사용하여 개체를 좀더 연결하려고합니다.__isset 올바른 결과를 반환하지 않습니다
나는 페이지라는 추상 클래스를 가지고 있으며, 내 웹 사이트의 모든 페이지가이 클래스를 확장합니다. 이 추상 클래스 생성자에서 는이 같은 사용자 개체를 얻을려고 :
public function __construct(){
$user = new user();
$this->user = $user->getIdentity();
$this->getHeader();
$this->switchAction();
$this->getFooter();
}
지금 내 페이지에 내가 $ this-을 사용할 수 있습니다> 사용자와 그 모든 잘 작동합니다. . 그래서
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;
}
}
페이지에서, 나는 사용자가 하나를 가지고 있는지 확인하려면 : 사용자가 로그인되어있는 경우 나 다시에게 사용자 개체를 제공합니다 내 사용자 클래스에서, 나는 마법이 & __isset 기능을 __get이 앨범 번호는 $this->user->oAlbums
입니다. 예상대로 모든 앨범 개체가 포함 된 배열을 반환합니다. 난 내 페이지에
if(empty($this->user->oAlbums))
echo 'still give smepty';
을 할 때, 그것은 여전히 에코
가 왜 __isset 기능이 작동하지 않습니다 밖으로 문자열 ..입니까?
감사합니다. 매력처럼 작동합니다. –