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

📄 compatibility.php.svn-base

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 SVN-BASE
字号:
<?php/** *  base include file for SimpleTest *  @package    SimpleTest *  @version    $Id: compatibility.php 1723 2008-04-08 00:34:10Z lastcraft $ *//** *  Static methods for compatibility between different *  PHP versions. *  @package    SimpleTest */class SimpleTestCompatibility {        /**     *    Creates a copy whether in PHP5 or PHP4.     *    @param object $object     Thing to copy.     *    @return object            A copy.     *    @access public     *    @static     */    function copy($object) {        if (version_compare(phpversion(), '5') >= 0) {            eval('$copy = clone $object;');            return $copy;        }        return $object;    }        /**     *    Identity test. Drops back to equality + types for PHP5     *    objects as the === operator counts as the     *    stronger reference constraint.     *    @param mixed $first    Test subject.     *    @param mixed $second   Comparison object.     *    @return boolean        True if identical.     *    @access public     *    @static     */    function isIdentical($first, $second) {        if (version_compare(phpversion(), '5') >= 0) {            return SimpleTestCompatibility::_isIdenticalType($first, $second);        }        if ($first != $second) {            return false;        }        return ($first === $second);    }        /**     *    Recursive type test.     *    @param mixed $first    Test subject.     *    @param mixed $second   Comparison object.     *    @return boolean        True if same type.     *    @access private     *    @static     */    function _isIdenticalType($first, $second) {        if (gettype($first) != gettype($second)) {            return false;        }        if (is_object($first) && is_object($second)) {            if (get_class($first) != get_class($second)) {                return false;            }            return SimpleTestCompatibility::_isArrayOfIdenticalTypes(                    get_object_vars($first),                    get_object_vars($second));        }        if (is_array($first) && is_array($second)) {            return SimpleTestCompatibility::_isArrayOfIdenticalTypes($first, $second);        }        if ($first !== $second) {            return false;        }        return true;    }        /**     *    Recursive type test for each element of an array.     *    @param mixed $first    Test subject.     *    @param mixed $second   Comparison object.     *    @return boolean        True if identical.     *    @access private     *    @static     */    function _isArrayOfIdenticalTypes($first, $second) {        if (array_keys($first) != array_keys($second)) {            return false;        }        foreach (array_keys($first) as $key) {            $is_identical = SimpleTestCompatibility::_isIdenticalType(                    $first[$key],                    $second[$key]);            if (! $is_identical) {                return false;            }        }        return true;    }        /**     *    Test for two variables being aliases.     *    @param mixed $first    Test subject.     *    @param mixed $second   Comparison object.     *    @return boolean        True if same.     *    @access public     *    @static     */    function isReference(&$first, &$second) {        if (version_compare(phpversion(), '5', '>=') && is_object($first)) {            return ($first === $second);        }        if (is_object($first) && is_object($second)) {            $id = uniqid("test");            $first->$id = true;            $is_ref = isset($second->$id);            unset($first->$id);            return $is_ref;        }        $temp = $first;        $first = uniqid("test");        $is_ref = ($first === $second);        $first = $temp;        return $is_ref;    }        /**     *    Test to see if an object is a member of a     *    class hiearchy.     *    @param object $object    Object to test.     *    @param string $class     Root name of hiearchy.     *    @return boolean         True if class in hiearchy.     *    @access public     *    @static     */    function isA($object, $class) {        if (version_compare(phpversion(), '5') >= 0) {            if (! class_exists($class, false)) {                if (function_exists('interface_exists')) {                    if (! interface_exists($class, false))  {                        return false;                    }                }            }            eval("\$is_a = \$object instanceof $class;");            return $is_a;        }        if (function_exists('is_a')) {            return is_a($object, $class);        }        return ((strtolower($class) == get_class($object))                or (is_subclass_of($object, $class)));    }        /**     *    Sets a socket timeout for each chunk.     *    @param resource $handle    Socket handle.     *    @param integer $timeout    Limit in seconds.     *    @access public     *    @static     */    function setTimeout($handle, $timeout) {        if (function_exists('stream_set_timeout')) {            stream_set_timeout($handle, $timeout, 0);        } elseif (function_exists('socket_set_timeout')) {            socket_set_timeout($handle, $timeout, 0);        } elseif (function_exists('set_socket_timeout')) {            set_socket_timeout($handle, $timeout, 0);        }    }}?>

⌨️ 快捷键说明

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