⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pear.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
📖 第 1 页 / 共 3 页
字号:
    /**     * This method is used to tell which errors you expect to get.     * Expected errors are always returned with error mode     * PEAR_ERROR_RETURN.  Expected error codes are stored in a stack,     * and this method pushes a new element onto it.  The list of     * expected errors are in effect until they are popped off the     * stack with the popExpect() method.     *     * Note that this method can not be called statically     *     * @param mixed $code a single error code or an array of error codes to expect     *     * @return int     the new depth of the "expected errors" stack     * @access public     */    function expectError($code = '*')    {        if (is_array($code)) {            array_push($this->_expected_errors, $code);        } else {            array_push($this->_expected_errors, array($code));        }        return sizeof($this->_expected_errors);    }    // }}}    // {{{ popExpect()    /**     * This method pops one element off the expected error codes     * stack.     *     * @return array   the list of error codes that were popped     */    function popExpect()    {        return array_pop($this->_expected_errors);    }    // }}}    // {{{ _checkDelExpect()    /**     * This method checks unsets an error code if available     *     * @param mixed error code     * @return bool true if the error code was unset, false otherwise     * @access private     * @since PHP 4.3.0     */    function _checkDelExpect($error_code)    {        $deleted = false;        foreach ($this->_expected_errors AS $key => $error_array) {            if (in_array($error_code, $error_array)) {                unset($this->_expected_errors[$key][array_search($error_code, $error_array)]);                $deleted = true;            }            // clean up empty arrays            if (0 == count($this->_expected_errors[$key])) {                unset($this->_expected_errors[$key]);            }        }        return $deleted;    }    // }}}    // {{{ delExpect()    /**     * This method deletes all occurences of the specified element from     * the expected error codes stack.     *     * @param  mixed $error_code error code that should be deleted     * @return mixed list of error codes that were deleted or error     * @access public     * @since PHP 4.3.0     */    function delExpect($error_code)    {        $deleted = false;        if ((is_array($error_code) && (0 != count($error_code)))) {            // $error_code is a non-empty array here;            // we walk through it trying to unset all            // values            foreach($error_code as $key => $error) {                if ($this->_checkDelExpect($error)) {                    $deleted =  true;                } else {                    $deleted = false;                }            }            return $deleted ? true : PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME        } elseif (!empty($error_code)) {            // $error_code comes alone, trying to unset it            if ($this->_checkDelExpect($error_code)) {                return true;            } else {                return PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME            }        } else {            // $error_code is empty            return PEAR::raiseError("The expected error you submitted is empty"); // IMPROVE ME        }    }    // }}}    // {{{ raiseError()    /**     * This method is a wrapper that returns an instance of the     * configured error class with this object's default error     * handling applied.  If the $mode and $options parameters are not     * specified, the object's defaults are used.     *     * @param mixed $message a text error message or a PEAR error object     *     * @param int $code      a numeric error code (it is up to your class     *                  to define these if you want to use codes)     *     * @param int $mode      One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,     *                  PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE,     *                  PEAR_ERROR_CALLBACK, PEAR_ERROR_EXCEPTION.     *     * @param mixed $options If $mode is PEAR_ERROR_TRIGGER, this parameter     *                  specifies the PHP-internal error level (one of     *                  E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).     *                  If $mode is PEAR_ERROR_CALLBACK, this     *                  parameter specifies the callback function or     *                  method.  In other error modes this parameter     *                  is ignored.     *     * @param string $userinfo If you need to pass along for example debug     *                  information, this parameter is meant for that.     *     * @param string $error_class The returned error object will be     *                  instantiated from this class, if specified.     *     * @param bool $skipmsg If true, raiseError will only pass error codes,     *                  the error message parameter will be dropped.     *     * @access public     * @return object   a PEAR error object     * @see PEAR::setErrorHandling     * @since PHP 4.0.5     */    function &raiseError($message = null,                         $code = null,                         $mode = null,                         $options = null,                         $userinfo = null,                         $error_class = null,                         $skipmsg = false)    {        // The error is yet a PEAR error object        if (is_object($message)) {            $code        = $message->getCode();            $userinfo    = $message->getUserInfo();            $error_class = $message->getType();            $message->error_message_prefix = '';            $message     = $message->getMessage();        }        if (isset($this) && isset($this->_expected_errors) && sizeof($this->_expected_errors) > 0 && sizeof($exp = end($this->_expected_errors))) {            if ($exp[0] == "*" ||                (is_int(reset($exp)) && in_array($code, $exp)) ||                (is_string(reset($exp)) && in_array($message, $exp))) {                $mode = PEAR_ERROR_RETURN;            }        }        // No mode given, try global ones        if ($mode === null) {            // Class error handler            if (isset($this) && isset($this->_default_error_mode)) {                $mode    = $this->_default_error_mode;                $options = $this->_default_error_options;            // Global error handler            } elseif (isset($GLOBALS['_PEAR_default_error_mode'])) {                $mode    = $GLOBALS['_PEAR_default_error_mode'];                $options = $GLOBALS['_PEAR_default_error_options'];            }        }        if ($error_class !== null) {            $ec = $error_class;        } elseif (isset($this) && isset($this->_error_class)) {            $ec = $this->_error_class;        } else {            $ec = 'PEAR_Error';        }        if ($skipmsg) {            $a = &new $ec($code, $mode, $options, $userinfo);            return $a;        } else {            $a = &new $ec($message, $code, $mode, $options, $userinfo);            return $a;        }    }    // }}}    // {{{ throwError()    /**     * Simpler form of raiseError with fewer options.  In most cases     * message, code and userinfo are enough.     *     * @param string $message     *     */    function &throwError($message = null,                         $code = null,                         $userinfo = null)    {        if (isset($this) && is_a($this, 'PEAR')) {            $a = &$this->raiseError($message, $code, null, null, $userinfo);            return $a;        } else {            $a = &PEAR::raiseError($message, $code, null, null, $userinfo);            return $a;        }    }    // }}}    function staticPushErrorHandling($mode, $options = null)    {        $stack = &$GLOBALS['_PEAR_error_handler_stack'];        $def_mode    = &$GLOBALS['_PEAR_default_error_mode'];        $def_options = &$GLOBALS['_PEAR_default_error_options'];        $stack[] = array($def_mode, $def_options);        switch ($mode) {            case PEAR_ERROR_EXCEPTION:            case PEAR_ERROR_RETURN:            case PEAR_ERROR_PRINT:            case PEAR_ERROR_TRIGGER:            case PEAR_ERROR_DIE:            case null:                $def_mode = $mode;                $def_options = $options;                break;            case PEAR_ERROR_CALLBACK:                $def_mode = $mode;                // class/object method callback                if (is_callable($options)) {                    $def_options = $options;                } else {                    trigger_error("invalid error callback", E_USER_WARNING);                }                break;            default:                trigger_error("invalid error mode", E_USER_WARNING);                break;        }        $stack[] = array($mode, $options);        return true;    }    function staticPopErrorHandling()    {        $stack = &$GLOBALS['_PEAR_error_handler_stack'];        $setmode     = &$GLOBALS['_PEAR_default_error_mode'];        $setoptions  = &$GLOBALS['_PEAR_default_error_options'];        array_pop($stack);        list($mode, $options) = $stack[sizeof($stack) - 1];        array_pop($stack);        switch ($mode) {            case PEAR_ERROR_EXCEPTION:            case PEAR_ERROR_RETURN:            case PEAR_ERROR_PRINT:            case PEAR_ERROR_TRIGGER:            case PEAR_ERROR_DIE:            case null:                $setmode = $mode;                $setoptions = $options;                break;            case PEAR_ERROR_CALLBACK:                $setmode = $mode;                // class/object method callback                if (is_callable($options)) {                    $setoptions = $options;                } else {                    trigger_error("invalid error callback", E_USER_WARNING);                }                break;            default:                trigger_error("invalid error mode", E_USER_WARNING);                break;        }        return true;    }    // {{{ pushErrorHandling()    /**     * Push a new error handler on top of the error handler options stack. With this     * you can easily override the actual error handler for some code and restore     * it later with popErrorHandling.     *     * @param mixed $mode (same as setErrorHandling)     * @param mixed $options (same as setErrorHandling)     *     * @return bool Always true     *     * @see PEAR::setErrorHandling     */    function pushErrorHandling($mode, $options = null)    {        $stack = &$GLOBALS['_PEAR_error_handler_stack'];        if (isset($this) && is_a($this, 'PEAR')) {            $def_mode    = &$this->_default_error_mode;            $def_options = &$this->_default_error_options;        } else {            $def_mode    = &$GLOBALS['_PEAR_default_error_mode'];            $def_options = &$GLOBALS['_PEAR_default_error_options'];        }        $stack[] = array($def_mode, $def_options);        if (isset($this) && is_a($this, 'PEAR')) {            $this->setErrorHandling($mode, $options);        } else {            PEAR::setErrorHandling($mode, $options);        }        $stack[] = array($mode, $options);        return true;    }    // }}}    // {{{ popErrorHandling()    /**    * Pop the last error handler used    *    * @return bool Always true    *    * @see PEAR::pushErrorHandling    */    function popErrorHandling()    {        $stack = &$GLOBALS['_PEAR_error_handler_stack'];        array_pop($stack);        list($mode, $options) = $stack[sizeof($stack) - 1];        array_pop($stack);        if (isset($this) && is_a($this, 'PEAR')) {            $this->setErrorHandling($mode, $options);        } else {            PEAR::setErrorHandling($mode, $options);        }        return true;    }    // }}}    // {{{ loadExtension()    /**    * OS independant PHP extension load. Remember to take care    * on the correct extension name for case sensitive OSes.    *    * @param string $ext The extension name    * @return bool Success or not on the dl() call    */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -