protected function _capability()
    {
        if (!isset($this->_init['capability'])) {
            $this->_initCapability();
        }

        return ($args = func_num_args())
            ? $this->_init['capability']->query(func_get_arg(0), ($args > 1) ? func_get_arg(1) : null)
            : $this->_init['capability'];
    }
protected function _capability()
    {
        if (!isset($this->_init['capability'])) {
            $this->_initCapability();
        }

        return ($args = func_num_args())
            ? $this->_init['capability']->query(func_get_arg(0), ($args > 1) ? func_get_arg(1) : null)
            : $this->_init['capability'];
    }
protected function _capability ( ) { if ( ! isset ( $ this -> _init [ 'capability' ] ) ) { $ this -> _initCapability ( ) ; } return ( $ args = func_num_args ( ) ) ? $ this -> _init [ 'capability' ] -> query ( func_get_arg ( 0 ) , ( $ args > 1 ) ? func_get_arg ( 1 ) : null ) : $ this -> _init [ 'capability' ] ; }
Query server capability.

Required because internal code can't call capability via magic method
directly - it may not exist yet, the creation code may call capability
recursively, and __get() doesn't allow recursive calls to the same
property (chicken/egg issue).

@return mixed  The capability object if no arguments provided. If
arguments are provided, they are passed to the query()
method and this value is returned.
@throws Horde_Imap_Client_Exception
Query server capability .