PHP Conference Japan 2024

TypeError

(PHP 7, PHP 8)

簡介

當以下情況發生時,可能會拋出 TypeError

  • 為類別屬性設定的值與屬性對應的宣告類型不符。
  • 傳遞給函式的引數類型與其對應的宣告參數類型不符。
  • 從函式傳回的值與宣告的函式傳回類型不符。

類別概要

class TypeError extends Error {
/* 繼承的屬性 */
受保護的 字串 $message = "";
私有的 字串 $string = "";
受保護的 整數 $code;
受保護的 字串 $file = "";
受保護的 整數 $line;
私有的 陣列 $trace = [];
私有的 ?Throwable $previous = null;
/* 繼承的方法 */
公開的 Error::__construct(字串 $message = "", 整數 $code = 0, ?Throwable $previous = null)
最終公開的 Error::getMessage(): 字串
最終公開的 Error::getPrevious(): ?Throwable
最終公開的 Error::getCode(): 整數
最終公開的 Error::getFile(): 字串
最終公開的 Error::getLine(): 整數
最終公開的 Error::getTrace(): 陣列
最終公開的 Error::getTraceAsString(): 字串
公開的 Error::__toString(): 字串
私有的 Error::__clone():
}

更新日誌

版本 說明
7.1.0 在嚴格模式下,當傳遞給內建 PHP 函式的參數數量無效時,不再拋出 TypeError。而是會引發 ArgumentCountError
新增註解

使用者貢獻的註解 1 則註解

celsowmbr at outlook dot com
5 年前
範例

<?php

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

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