code: public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
      {
          if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
              return true;
          } elseif ($checkBehaviors) {
              $this->ensureBehaviors();
              foreach ($this->_behaviors as $behavior) {
                  if ($behavior->canGetProperty($name, $checkVars)) {
                      return true;
                  }
              }
          }
  
          return false;
      }
docs: Returns a value indicating whether a property can be read.
  
  A property can be read if:
  
  - the class has a getter method associated with the specified name
  (in this case, property name is case-insensitive);
  - the class has a member variable with the specified name (when `$checkVars` is true);
  - an attached behavior has a readable property of the given name (when `$checkBehaviors` is true).
  
  @param string $name the property name
  @param bool $checkVars whether to treat member variables as properties
  @param bool $checkBehaviors whether to treat behaviors' properties as properties of this component
  @return bool whether the property can be read
  @see canSetProperty()