PHP - 有没有办法使用编译器定义跨代码更改函数



例如,我的代码中有许多对函数mysql_connect的调用。

如果 PHP 版本为 5.6 或更高,我想更改为 mysqli_connect

if (PHP_VERSION_ID >= 50600) {
    define mysql_connect as mysqli_connect
}

肯定有很多方法。他们都不是好人。一种干净的方法是:

function connect($params) {
    if (PHP_VERSION_ID >= 50600) {
        mysqli_connect($params);
    } else {
        mysql_connect($params);
    }
}

这样,您只需调用 connect 函数,函数本身就会决定它是使用 mysqli_connect() 还是mysql_connect()

override_function()但老实说,这只会让你的代码非常混乱。

这很丑陋,但可能对你有用

if (!function_exists("mysql_connect")) {
    function mysql_connect() {
        return call_user_func_array("mysqli_connect", func_get_args());
    }
}

相关内容

最新更新