PHP Conference Nagoya 2025

Исключение TypeError

(PHP 7, PHP 8)

Введение

Исключение TypeError выбрасывается, если:

  • Значение, которое устанавливают для свойства класса, не соответствует объявленному типу свойства.
  • Тип аргумента, который передали в функцию, не соответствует типу, который для этого аргумента объявили в функции.
  • Тип значения, которое вернула функция, не соответствует типу возврата, который объявили в функции.

Обзор класса

class TypeError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
private Error::__clone(): void
}

Список изменений

Версия Описание
7.1.0 Исключение TypeError больше не выбрасывается, когда во встроенную PHP-функцию в режиме strict type передаётся недопустимое количество аргументов. Вместо этого выбрасывается исключение ArgumentCountError.
Добавить

Примечания пользователей 1 note

up
5
celsowmbr at outlook dot com
5 years ago
An example:

<?php

function test($x):int {
return
$x;
}

try {
test('ss');
}catch(
TypeError $e){
echo
"Error !";
}
To Top