TypeError

(PHP 7, PHP 8)

Введение

Есть три сценария, в которых будет выброшено исключение TypeError:

  • тип аргумента, переданный функции, не соответствует типу, объявленному в функции для этого аргумента.
  • Тип возвращённого функцией значения не соответствует типу возврата, объявленному в функции.
  • Встроенной функции PHP было передано неверное количество аргументов (только для режима strict).


Обзор классов


TypeError extends Error {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Error::getMessage ( ) : string
final public Error::getPrevious ( ) : Throwable|null
final public Error::getCode ( ) : mixed
final public Error::getFile ( ) : string
final public Error::getLine ( ) : int
final public Error::getTrace ( ) : array
final public Error::getTraceAsString ( ) : string
public Error::__toString ( ) : string
final private Error::__clone ( ) : void
}
An example:
<?php
function test($x):int {
    return $x;
}
try {
    test('ss');
}catch(TypeError $e){
    echo "Error !";
}


-1
andrian dot test dot job at gmail dot com1 year ago
declare(strict_types=1); //if without this line the result is different
$a = [1,2=>[3,4]];
try{
    count($a, COUNT_RECURSIVE, 'toto and blabla');
}catch(TypeError $e){
    echo $e->getMessage();
}




Смотрите также:
Описание на ru2.php.net
Описание на php.ru