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

发布于 2024-09-24 05:01:27 字数 436 浏览 6 评论 0 原文

如果我更改实现接口的类的方法的签名,PHP 脚本会停止且没有错误消息,例如:

interface A
{
  public function somefunction();
}

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

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

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

我正在使用 PHP 5.3.1(带有适用于 Windows 1.7.3 的 XAMPP)

错误显示在 Eclipse 控制台中,但现在我正在使用 XDebug。)

(我之前使用 PHP < 5.3 的 Zend 调试器,这些 提前寻求任何提示!

a PHP script stops without an error message, if I change the signature of a method of a class, which implements a intereface, e.g.:

interface A
{
  public function somefunction();
}

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

This is an error of course, but there is no error message shown.

What is the name of this error type? (I already searched a lot, but with the wrong phrases obviously)
How can I log or output this error?

I'm using PHP 5.3.1 (with XAMPP for Windows 1.7.3)

(I used Zend Debugger with PHP < 5.3 earlier, where those erros were shown in the Eclipse console, but now I'm using XDebug.)

Thanks in advance for any hint!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

半世晨晓 2024-10-01 05:01:27

放在文件顶部然后尝试,

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

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

put at the top of file and then try,

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

If you still getting no output, please check your error_log.

勿忘心安 2024-10-01 05:01:27

已解决

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

我正在使用自动加载函数来加载所需的类(通过使用 spl_autoload_register())。我的自动加载器的实现限制了所有错误消息...我不知道,这会导致此类“更深层次”的错误不显示。
从我的角度来看,这至少有点愚蠢,但我更高兴的是,我找到了这个问题的原因,并且我学到了一些东西:-)

非常感谢您的所有贡献!再次抱歉,我无法再编辑我最初的问题。

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

RESOLVED

@ontrack Thanks, your hint directed me to the right direction:

I'm using an autoload function to load required classes (by using spl_autoload_register()). My implemention of my autoloader restrains all error messages... I did not know, that this causes such 'deeper' errors not to show up.
This was at least kind of stupid from my side, but I'm more happy, that I found the reason for this problem and I have learned something :-)

Many thanks to all your contributions! And sorry again, that I cannot edit my initial question anymore.

@outis Thanks, please read my comment

请叫√我孤独 2024-10-01 05:01:27

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

error_reporting(E_ALL);

它应该报告错误。

Put the following at the top of your script:

error_reporting(E_ALL);

It should report an error.

自此以后,行同陌路 2024-10-01 05:01:27

您的配置一定有问题。当我在 PHP 5.3.2+XDebug 2.1.0 下尝试示例代码时,PHP 抱怨:

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

错误类型是 替换 违规,因为 B 在所有情况下都无法替换 A

Something must be up with your configuration. When I try the sample code under PHP 5.3.2+XDebug 2.1.0, PHP complains:

Fatal error: Declaration of B::somefunction() must be compatible with that of A::somefunction()

The type of error is a substitution violation, since a B can't be substituted for an A in all situations.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文