一、简介
PHP TypeError是指在PHP代码中出现的类型错误。当使用一个不兼容的类型或者变量的类型与所期望的类型不匹配时,就会抛出TypeError异常。当尝试将一个变量赋予一个不兼容的类型,或者将一个不兼容的类型传递给一个函数或方法时,就可能发生类型错误。
以下三种情况会抛出TypeError 的情况:
1、为类属性设置的值与该属性申明的类型不匹配。
2、传递给函数的参数类型与函数预期声明的参数类型不匹配。
3、函数返回的值与声明的函数返回类型不匹配。
例如,如果一个函数期望接收一个整数作为参数,但实际传递了一个字符串,就会引发TypeError异常。类似地,如果一个变量被声明为一个特定类型的对象,但实际赋值为一个不兼容的对象或其他类型的值,也会引发TypeError异常。
PHP .1.0版本后,当在严格模式下向内置 PHP 函数传递无效数量的参数时,不再抛出 TypeError。 相反,会抛出 ArgumentCountError。
二、类摘要
class TypeError extends Error {
protected string $message = "";
private string $string = "";
protected string $file = "";
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::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
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::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}
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::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}