code: public function __isset($name)
      {
          $getter = 'get' . $name;
          if (method_exists($this, $getter)) {
              return $this->$getter() !== null;
          }
  
          // behavior property
          $this->ensureBehaviors();
          foreach ($this->_behaviors as $behavior) {
              if ($behavior->canGetProperty($name)) {
                  return $behavior->$name !== null;
              }
          }
  
          return false;
      }
docs: Checks if a property is set, i.e. defined and not null.
  
  This method will check in the following order and act accordingly:
  
  - a property defined by a setter: return whether the property is set
  - a property of a behavior: return whether the property is set
  - return `false` for non existing properties
  
  Do not call this method directly as it is a PHP magic method that
  will be implicitly called when executing `isset($component->property)`.
  @param string $name the property name or the event name
  @return bool whether the named property is set
  @see https://secure.php.net/manual/en/function.isset.php