Estou tentando implementar dicas de tipo de PHP5 em uma das minhas aulas,
class ClassA {
public function method_a (ClassB $b)
{}
}
class ClassB {}
class ClassWrong{}
Modo de usar correto:
$a = new ClassA;
$a->method_a(new ClassB);
produzindo erro:
$a = new ClassA;
$a->method_a(new ClassWrong);
Erro fatal capturável: o argumento 1 passado para ClassA :: method_a () deve ser uma instância de ClassB, instância de ClassWrong fornecida ...
É possível detectar esse erro (uma vez que diz "capturável")? e se sim como?
php
fatal-error
type-hinting
hoball
fonte
fonte
E_RECOVERABLE_ERROR
), pois eles podem ser detectados a partir do PHP 7 ..Respostas:
Atualização: Este não é mais um erro fatal capturável no php 7. Em vez disso, uma "exceção" é lançada. Uma "exceção" (entre aspas) que não é derivada de Exceção, mas de Erro ; ainda é um Throwable e pode ser tratado com um bloco try-catch normal. consulte https://wiki.php.net/rfc/throwable-interface
Por exemplo
estampas
A resposta antiga para versões pré-php7:
http://docs.php.net/errorfunc.constants diz:
veja também: http://derickrethans.nl/erecoverableerror.html
por exemplo
estampas
editar: Mas você pode "tornar" uma exceção que você pode tratar com um bloco try-catch
consulte: http://docs.php.net/ErrorException
fonte