Ich versuche, Type Hinting von PHP5 in einer meiner Klassen zu implementieren.
class ClassA {
public function method_a (ClassB $b)
{}
}
class ClassB {}
class ClassWrong{}
Richtige Benutzung:
$a = new ClassA;
$a->method_a(new ClassB);
Fehler erzeugen:
$a = new ClassA;
$a->method_a(new ClassWrong);
Auffangbarer schwerwiegender Fehler: Argument 1, das an ClassA :: method_a () übergeben wurde, muss eine Instanz von ClassB sein, eine Instanz von ClassWrong ist angegeben ...
Ist es möglich, diesen Fehler abzufangen (da dort "catchable" steht)? und wenn ja, wie?
php
fatal-error
type-hinting
hoball
quelle
quelle
E_RECOVERABLE_ERROR
), da diese ab PHP 7Antworten:
Update: Dies ist in PHP 7 kein schwerwiegender Fehler mehr. Stattdessen wird eine "Ausnahme" ausgelöst. Eine „Ausnahme“ (in Schrecken Anführungszeichen) , die nicht von abgeleiteter Ausnahme aber Fehlern ; Es ist immer noch ein Throwable und kann mit einem normalen Try-Catch-Block gehandhabt werden. Siehe https://wiki.php.net/rfc/throwable-interface
Z.B
druckt
Alte Antwort für Pre-PHP7-Versionen:
http://docs.php.net/errorfunc.constants sagt:
Siehe auch: http://derickrethans.nl/erecoverableerror.html
z.B
druckt
edit: Aber du kannst es zu einer Ausnahme machen, die du mit einem Try-Catch-Block behandeln kannst
Siehe: http://docs.php.net/ErrorException
quelle