我正在将 PHP 5.2.x 应用程序迁移到新的 5.2.x 服务器。旧服务器实际上是多年前作为 PHP 4.0 服务器开始的,并且随着时间的推移升级到 PHP 5.2。我们的模块之一有一个函数,如果多次使用该模块,该函数会被重新声明。我们可以很容易地解决这个问题,但我们对它是如何工作的感到困惑。
在新服务器上它将失败并出现预期的结果:
Fatal error: Cannot redeclare function
问题是在旧服务器上它总是重新声明函数!此处是否使用了 PHP 设置或特殊用法使其可以在一台服务器上运行但不能在另一台服务器上运行?
谢谢!
编辑 仍在尝试倾诉这是如何可能的。该站点发生 fatal error ,但在该错误点之后执行。
最佳答案
重新声明函数被认为是一个错误。
也许你们可以使用“重命名功能”。
http://es.php.net/manual/en/function.rename-function.php
if(function_exist("foo")){
rename_function('foo', 'old_foo' );
function foo(){
/*...*/
}
}
另一个想法是重写代码来做到这一点
$foo = function(){ /* something */.... };
所以下次你想重新定义 $foo() 时,你可以
$foo = function(){ /* something else */.... };
关于php - 重新声明功能适用于旧服务器但不适用于新服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9879643/