php - 重新声明功能适用于旧服务器但不适用于新服务器

标签 php linux apache php4 php-5.2

我正在将 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/

相关文章:

php - 根据后值更新两个表行

linux - 启动 Jenkins 服务器的最佳方式是什么

linux - glreadpixels 比基于 x11 的屏幕截图慢

mysql - 在 El Capitan 上退出 MySQL 而不重新启动

php - 如何创建 laravel artisan 命令?

php - 如何从 Controller Symfony2 内部访问不同的 Controller

php - jQuery:如果 DatePicker UI 更改,则更新某个文本框

regex - 在同一行捕获多个正则表达式模式

wordpress - 通过 htaccess 的特定 Wordpress 页面 SSL 异常

Java 7 EE 教程示例