我有3類爲A,B和C如下所示:如何知道錯誤在哪裏?
a.php只會
<?php
abstract class A {
public static function getInstance() {
$child = get_called_class();
$instance = new $child;
}
}
?>
b.php
<?php
class B extends A {
const MY_CONSTANT = SomeClass::UNKNOWN_CONSTANT;
}
?>
c.php
<?php
include 'a.php';
include 'b.php';
B::getInstance();
//Here will got an error
//Fatal error: Class 'SomeClass' not found in a.php on line 5
?>
顯然在B類中有一個錯誤,但是當我調用B :: getInstance()方法時, 錯誤消息是「致命的錯誤:在第5行a.php中找不到類'SomeClass'」
我不明白爲什麼該錯誤消息不會告訴我在第3行的b.php中的錯誤「? 如何知道真正的錯誤地方並進行調試?
編輯1
我認爲PHP應該告訴我在第3行b.php錯誤,否則我會很難調試。
http://php.net/manual/en/function.debug-backtrace.php – goat
我爲此使用Xdebug。它顯示了stacktrace和一個更令人討厭的錯誤消息,即純PHP。在我看來,開發機器上更討厭的是好的。 –
@joe我想建議你使用一個任意的IDE,它會直接向你顯示這樣的錯誤:) – KingCrunch