Yii:使用getIsGuest()或isGuest

So far, when I wanted to know if the user is logged in or not I used Yii::app()->user->isGuest.

However, there is a method called getIsGuest(), which returns the isGuest variable.

if (!Yii::app()->user->getIsGuest())

My question is, should I use getIsGuest() instead? Using getIsGuest() is the proper way? Or it does not matter and they both correct ways?

Actually, there is no difference between $class->getAttribute() and $class->attribute. But this is good to know what is going on in behind.

Yii widely uses php magic methods. In this case, it uses __set and __get magic methods to implement getters and setters. As php's official documents defines __get() :

__get() is utilized for reading data from inaccessible properties.

Consider an example:

class Test{
    private $attribute;
    private $attribute2;
    private $attribute3;
    public function getAttribute(){
        return $this->attribute;
    }
    public function getAttribute2(){
        return $this->attribute2;
    }
    public function getAttribute3(){
        return $this->attribute3;
    }
}

If you want to get the attribute property value you must call getAttribute() method and you can not get attribute like below (since you have no access to attribute property):

$test=new Test();
echo $test->attribute;    

But with __get magic method it can be implemented as:

class Test{
    private $attribute;
    private $attribute2;
    private $attribute3;
    //__GET MAGIC METHOD
    public function __get($name)
    {
        $getter='get'.$name;
        if(method_exists($this,$getter))
        return $this->$getter();
    }

    public function getAttribute(){
        return $this->attribute;
    }
    public function getAttribute2(){
        return $this->attribute2;
    }
    public function getAttribute3(){
        return $this->attribute3;
    }
}

Now, you are able to get attribute value like below:

$test=new Test();
echo $test->attribute;

To find more about php's magic methods take a look at the php's official document:

Magic Methods

It doesn't really matter. If you call user->isGuest the method user->getIsGuest() gets internally called. It's just kind of an alias.