PHP - 有没有办法在不修改代码的情况下忽略php.ini / ini_settings中的致命错误?

时间:2011-04-28 04:15:10

标签: php

我继承了一些PHP源代码,我必须维护它。它是从头开始构建的,不使用框架,只是前开发人员自己的创建。

现在,我问这个:

有没有办法在不修改代码的情况下忽略php.ini / ini_settings中的致命错误?

情景:

SomeClass.php:

<?php class SomeClass {
...)?>

的index.php:

include("SomeClass.php");
...
include("SomeClass.php");

在我的开发框中,这会抛出一个致命错误异常(因为SomeClass已被声明两次),这是明显的和预期的行为。

以下是踢球者:此源位于某个地方,并且可以正常工作。我只是不能访问该服务器。

所以我在这里看到两个场景:

1。)有一种方法可以通过ini设置来解决这个致命错误。我必须知道。

2。)前开发人员没有向我提供当前正在运行的确切,更新的源代码。然后我必须坚持他给我最新的源代码,但是如果我100%确定没有办法#1可以发生,我只能这样做。

你们有什么想法?

4 个答案:

答案 0 :(得分:2)

我尝试设置一个不会因致命错误而死的set_error_handler()函数,而是Apache崩溃了。换句话说,PHP 需要以便系统不会死。

所以,对不起,我真的不认为有解决方案。

答案 1 :(得分:1)

致命错误不是来自包含功能 - 仅警告。但是,你会因为需要而致命。使用@include,它甚至不会生成警告。

答案 2 :(得分:0)

通知您的开发者他应该使用__autoloadspl_autoload来避免此类错误......

答案 3 :(得分:0)

生产服务器上主要不鼓励报告错误。为什么让用户看看您的脚本是否找不到文件。看看这个http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errorshttp://www.php.net/manual/en/function.set-error-handler.php。后者可能会有所帮助,请查看页面中的示例。我建议记录错误而不是显示错误。但这将涉及到代码的某种解决方法。