我们有一个基于PHP的网站,自2005年开始运营。我们刚刚添加了一个新的开发人员。我们让每个开发人员安装一个本地apache堆栈进行调试。当他在他的工作站上执行该站点时,会出现与一个函数名称冲突有关的错误消息。
具体来说,我们有一个名为GetText的函数,它有5个参数。在他的系统上,他收到一条消息,说明功能会被重新声明。它与一个似乎被命名为gettext的函数相冲突(注意大小写不同),据说这个函数有一个变量。
我们不会在任何其他情况下发生此冲突。其他情况包括我们的生产网站和三个开发网站。所有这些实例都在FreeBSD unix上运行。我们有开发人员在各种Windows机器上运行OS OS X.有问题的开发人员正在Windows 7上运行。
我们的代码库中没有看到任何这样的“gettext”函数,包括Pear库。作为临时解决方法,我们将函数重命名为“XGetText”。这解决了这个问题。
这场冲突来自哪里?
答案 0 :(得分:2)
该开发人员在他的PHP安装上有gettext extension活动,它定义了函数gettext
。资本化对PHP无关紧要。如果可能的话,他要么必须在他的php.ini中deactivate the extension,要么重新编译PHP以排除gettext扩展(在这种情况下我建议使用虚拟机来安装自定义PHP版本)。
GetText
是一个糟糕的选择。
答案 1 :(得分:0)
PHP有一个内置的gettext
函数(PHP 4和PHP 5),PHP函数名称不区分大小写。据推测,您的PHP不是使用--with-gettext
标志编译的,而且是。
答案 2 :(得分:-1)