【问题标题】:Unhandled Exception : Redefining already defined constructor for class未处理的异常:为类重新定义已定义的构造函数
【发布时间】:2013-01-14 17:57:55
【问题描述】:

在 PHP 中,我收到以下错误:

为 Select 类重新定义已定义的构造函数

那是因为“选择”类有一个“选择”函数(除了它的构造函数)。 但与有关此错误的其他主题不同,我的错误是“未处理的异常”。

错误报告级别为 30719(wamp、PHP 5.3.9、Apache 2.2.21)的本地服务器中未显示该错误。 在我显示错误的prod服务器中,错误报告级别为22527(真实服务器,Ubuntu,PHP 5.3.2,Apache 2.2.14)。

为什么错误对我来说显示为未处理的异常? 我使用 Laravel 框架,但如果我修改 laravel/laravel.php 以在 start.php 中手动设置 error_reporting(0)ini_set('display_error', 0),错误甚至不会消失 ????

我能做什么? 非常感谢

【问题讨论】:

  • 您是否设法在不重命名函数的情况下解决了这个问题?我在使用 Basset 和 Laravel 时遇到了同样的问题。
  • @KaiFeller 我想我在那段时间开始着手另一个项目,但我不记得修复任何东西。对不起,我真的帮不上忙:(

标签: php exception laravel


【解决方案1】:

将 PHP4 构造函数放在类中的 PHP5 构造函数之后。

【讨论】:

    【解决方案2】:

    出于向后兼容的目的,PHP 使用与类同名的方法作为类构造函数。因此,事实上你有一个与类同名的方法以及一个构造函数,你得到了这个异常。你应该改变你的方法名或类名。

    【讨论】:

    • 嘿,谢谢,但我确实想到了。重命名函数并不是一个真正的选择,因为它是一个库(Laravel 的一个包)。我的问题真的是为什么错误对我来说显示为未处理的异常?以及如何解决这个问题(不重命名函数)。
    猜你喜欢
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 2019-07-15
    • 2020-07-28
    相关资源
    最近更新 更多