PHP脚本停止没有错误消息(哪种错误类型?)

时间:2010-09-19 11:23:54

标签: php xdebug

如果我更改了类的方法的签名,那么PHP脚本会在没有错误消息的情况下停止,这会实现一个接口,例如:

interface A
{
  public function somefunction();
}

class B implements A
{
  public function somefunction(XY $xy);
  {
   ... 
  }
} 

这当然是错误,但没有显示错误消息。

此错误类型的名称是什么? (我已经搜索了很多,但显然有错误的短语) 如何记录或输出此错误?

我正在使用PHP 5.3.1(使用XAMPP for Windows 1.7.3)

(我之前使用Zend Debugger和PHP< 5.3,Eclipse控制台中显示了这些错误,但现在我正在使用XDebug。)

提前感谢任何暗示!

4 个答案:

答案 0 :(得分:3)

放在文件的顶部,然后尝试,

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>

如果仍然没有输出,请检查您的error_log。

答案 1 :(得分:1)

分辨

@ontrack 谢谢,您的提示指示我走向正确的方向:

我正在使用自动加载功能来加载所需的类(通过使用spl_autoload_register())。我的自动加载器的实现限制了所有错误消息......我不知道,这导致这种“更深层”的错误没有显示出来。 这对我来说至少有些愚蠢,但我更高兴,我发现了这个问题的原因并且我学到了一些东西: - )

非常感谢您的所有贡献!再次抱歉,我不能再编辑我的初始问题了。

@outis 谢谢,请阅读我的评论

答案 2 :(得分:0)

将以下内容放在脚本的顶部:

error_reporting(E_ALL);

它应报告错误。

答案 3 :(得分:0)

您的配置必须满足一些要求。当我在PHP 5.3.2 + XDebug 2.1.0下尝试示例代码时,PHP会抱怨:

  

致命错误:B :: somefunction()的声明必须与A :: somefunction()的声明兼容

错误类型属于substitution违规行为,因为B无法在所有情况下替换A