PHP函数名称冲突

时间:2014-09-19 18:33:41

标签: php gettext

我们有一个基于PHP的网站,自2005年开始运营。我们刚刚添加了一个新的开发人员。我们让每个开发人员安装一个本地apache堆栈进行调试。当他在他的工作站上执行该站点时,会出现与一个函数名称冲突有关的错误消息。

具体来说,我们有一个名为GetText的函数,它有5个参数。在他的系统上,他收到一条消息,说明功能会被重新声明。它与一个似乎被命名为gettext的函数相冲突(注意大小写不同),据说这个函数有一个变量。

我们不会在任何其他情况下发生此冲突。其他情况包括我们的生产网站和三个开发网站。所有这些实例都在FreeBSD unix上运行。我们有开发人员在各种Windows机器上运行OS OS X.有问题的开发人员正在Windows 7上运行。

我们的代码库中没有看到任何这样的“gettext”函数,包括Pear库。作为临时解决方法,我们将函数重命名为“XGetText”。这解决了这个问题。

这场冲突来自哪里?

3 个答案:

答案 0 :(得分:2)

该开发人员在他的PHP安装上有gettext extension活动,它定义了函数gettext。资本化对PHP无关紧要。如果可能的话,他要么必须在他的php.ini中deactivate the extension,要么重新编译PHP以排除gettext扩展(在这种情况下我建议使用虚拟机来安装自定义PHP版本)。

BTW,gettext是一个非常受欢迎且经常使用的扩展,命名你的用户空间函数GetText是一个糟糕的选择。

答案 1 :(得分:0)

PHP有一个内置的gettext函数(PHP 4和PHP 5),PHP函数名称不区分大小写。据推测,您的PHP不是使用--with-gettext标志编译的,而且是。

答案 2 :(得分:-1)

停用 Gettext extension ,因为我确定您不会在项目中使用

这就是它在WAMP中的表现:

enter image description here