Bir PHP Ölümcül Hata gerçekten örtülü sözdizimi hatası olduğunda nasıl anlaşılır, ve ne zaman onlar ne yapmak?

0 Cevap php

Considering the following PHP class:

class someObject {
    public function broken(){
        return isset($this->something()) ? 'worked' : 'didnt';
    }

    public function something(){
        return true;
    }

    public function notBroken(){
        print('worked');
    }
}

Let's say I now do:

$obj= new someObject();
$obj->broken();

PHP Fatal error: Can't use method return value in write context Bu ince ve beklenen: Eğer isset bir işlev çağrısı (), (onun tarafından referans bulunuyor) geçemez göz önüne alındığında, ben bu bir ölümcül hata ile başarısız bekliyoruz.

However, let's say I now do:

$obj= new someObject();
$obj->notBroken();

Ben broken() yerde bu yürütme, ve broken() Bir Ölümcül Hata (ve bir ayrıştırma hatası değil) 'dir hata isabet değilim göz önüne alındığında, ben normal çıkışı beklemek olmaz yorum "çalıştı". FALSE! It still generates the Fatal Error.

Question:

Aside from just not writing code that has errors, are there any other errors that are not Parse Errors but still trigger a runtime error? I only know about: PHP Fatal error: Can't use method return value in write context. Is there any way to detect these errors? Is there a special name for this type of error?

0 Cevap