如果我更改了类的方法的签名,那么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。)
提前感谢任何暗示!
答案 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
。