ereg()函数已被弃用

8

我开始学习PHP。因此在我的Windows 7机器上安装了WAMP服务器。我正在尝试以下PHP代码:

<?php
$phrase = "I love PHP";
if (ereg("PHP", $phrase)) {
  echo "The expression matches";
}
?>

当我在Mozilla中尝试时,输出结果如下:
Deprecated: Function ereg() is deprecated in C:\wamp\www\learnphp\common.php on line 3
The expression matches

我认为代码是正确的,但我不理解这个错误。有人能解释一下这里的“已弃用”是什么意思吗?以及如何解决这个错误?

我的PHP版本是5.3.0,可能是版本的问题吗?

编辑:我在Google上搜索了一下,在www文件夹中找到了关于include\file.inc文件的一些内容。但是我在www文件夹中没有include目录。

3个回答

16

"Deprecated(弃用)"意味着PHP 5.3.0不再支持该函数。

您应将ereg()视为不存在。

该函数仍然存在,但仅用于支持已使用该函数的现有应用程序。

编写新代码时,永远不要使用已弃用的函数。

相反,请考虑使用preg_match函数。


7

Deprecated指的是这个函数在未来版本的PHP中将被删除。您不应该再在您的代码中依赖它,而是使用建议的替代方案。

在PHP的ereg函数中,请注意 PHP手册 中的通知:

从PHP 5.3.0开始,正则表达式扩展已经被弃用,PCRE扩展取而代之。调用这个函数将发出E_DEPRECATED通知。请参阅 不同之处列表 以了解如何转换为PCRE。

此外,请参阅PHP手册中E_DEPRECATED的描述。
有关PHP5.3中所有弃用功能的信息,请参见PHP 5.3.x中的弃用功能
有关更一般的信息,请参见软件弃用的维基百科文章


3
这也意味着你正在学习过时的教程,应该寻找现代化的教程。 - Quentin

-2

这意味着你正在使用的函数已经过时了。你不能再使用这个函数了。我在 PHP 5.5.6 中也遇到了同样的错误。解决这个问题的一个可能的方法是降级你的 PHP 版本,这样它就能得到支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接