明显的php解析错误 - 你需要*来使用date.timezone设置

时间:2014-02-23 15:57:56

标签: php

我从php 5.2升级到5.4并且出现You are *required* to use the date.timezone setting错误。是的我知道关于date_default_timezone_set('zone_name'),在我的php.ini中设置时区并使用gmdate(),只是听我说...: - )

所以错误就出现了行号和第二个错误:

Fatal error: Cannot redeclare getHostname()

这是有趣的地方。为date.timezone设置和重新声明错误提供的行号是相同的,引用的实际行是:return $_SERVER['SERVER_NAME'];并形成一个小包装函数的一部分:

function getHostname()
{
return $_SERVER['SERVER_NAME']; # This is the line the parse identifies
}

如果我注释掉解析器很满意的函数,或者如果我在代码文件中移动函数,那么解析器抱怨的行号就会停留在移动的return $_SERVER['SERVER_NAME'];行上,所以它是一致的它在抱怨。

然而,虽然解析器是一致的,但是线路是抱怨与date.timezone设置无关,这个函数也没有重新声明,并且向函数添加date_default_timezone_set('zone_name')没有任何区别......甚至如果时区和主机名之间有链接。

我已经检查过代码库,getHostname函数只在一个地方声明,而且这个代码已经在php 5.2及更低版本下运行了多年而没有任何重新声明问题。

现在我可以通过放弃使用包装器函数来解决问题,只使用裸$_SERVER['SERVER_NAME'],但我对看起来像解析器感到困惑的东西很感兴趣。

0 个答案:

没有答案