如何处理PHP中的弃用函数

时间:2010-07-23 03:29:14

标签: php function deprecated

我是这个网站的新手。我想问一下PHP编程。我们如何处理PHP中的弃用函数。我想将它重定向到我的新功能。我们知道,ereg函数已在PHP 5.3.0中弃用,并建议使用preg_match(posix到PCRE)。但是,当我们用ereg函数编写了很多代码时,我们是否必须手动更改它?我想要一个像这样的解决方案。

function ereg($pattern, $string, &$array) { return preg_match('#'.$pattern.'#', $string, $array); }

主要问题是 ereg功能,但处理的解决方案已弃用。 我一直在谷歌搜索。有人建议使用override_function(使用APD扩展名)。但是,这个扩展很难找到(我需要为Windows编译预编译的扩展)。有人可以帮帮我吗? 我很抱歉我的英语不好。我希望你能理解。

2 个答案:

答案 0 :(得分:5)

他们告诉你它被弃用的原因,并没有完全删除它,是为了给你时间来更新你的代码。

如果您不想更新代码,则始终无法升级PHP安装。或者您可以等到PHP发布完成后ereg()被完全删除,并使用上述解决方案。

其他可能的解决方案包括对所有ereg次来电进行搜索/替换,并将其替换为my_ereg,这可能是您在上面定义的功能。

此外:

if(!function_exists("ereg")){ .... }

定义if语句中的函数,该函数检查函数是否已存在。这将使过渡更加顺畅。

但总而言之,弃用的目的是让开发人员有时间更新代码并停止使用所有已弃用的函数,然后再将其从代码库中完全删除。

我相信有人称之为“维护”。

答案 1 :(得分:0)

您始终可以使用function_exists功能。

if(!function_exists('ereg'))
{
    function ereg($pattern, $string, &$array) 
    { 
        return preg_match('#'.$pattern.'#', $string, $array); 
    }
}

使用此方法将允许它在所有版本中工作,就好像它已被弃用但仍然可以使用它将使用该函数但是一旦从php中删除它就能够使用您的用户定义函数。 / p>