J'essaye d'implémenter l'indication de type de PHP5 sur l'un de mes cours,
class ClassA {
public function method_a (ClassB $b)
{}
}
class ClassB {}
class ClassWrong{}
Usage correct:
$a = new ClassA;
$a->method_a(new ClassB);
produisant une erreur:
$a = new ClassA;
$a->method_a(new ClassWrong);
Erreur fatale capturable: l'argument 1 passé à ClassA :: method_a () doit être une instance de ClassB, instance de ClassWrong donnée ...
Est-il possible d'attraper cette erreur (puisqu'elle dit «capturable»)? et si oui, comment?
php
fatal-error
type-hinting
Hoball
la source
la source
E_RECOVERABLE_ERROR
) discutée ici, car elles doivent être détectées à partir de PHP 7.Réponses:
Mise à jour: Ce n'est plus une erreur fatale capturable dans php 7. Au lieu de cela, une "exception" est lancée. Une "exception" (entre guillemets effrayants) qui n'est pas dérivée d'une exception mais d'une erreur ; c'est toujours un Throwable et peut être manipulé avec un bloc try-catch normal. voir https://wiki.php.net/rfc/throwable-interface
Par exemple
impressions
Ancienne réponse pour les versions pré-php7:
http://docs.php.net/errorfunc.constants dit:
voir aussi: http://derickrethans.nl/erecoverableerror.html
par exemple
impressions
edit: Mais vous pouvez "en faire" une exception que vous pouvez gérer avec un bloc try-catch
voir: http://docs.php.net/ErrorException
la source