php函数的严格类型,严格模式
php 7開始支持嚴格類型,php 7 啟用嚴格類型:代碼文件頭部加上declare(strict_types=1);
php中文文檔的declare函數頁面,還沒更新,沒有嚴格類型的介紹.然而英文文檔是有介紹的.
所以盡量看英文文檔吧,英文的才是第一手資料
學好英語是程序員的必備技能.
在PHP文檔 函數參考 部分https://www.php.net/manual/zh/functions.arguments.php
底下 有關于嚴格類型的詳細說明
什么是嚴格類型
嚴格類型
默認情況下,如果能做到的話,PHP將會強迫錯誤類型的值轉為函數期望的標量類型。 例如,一個函數的一個參數期望是string,但傳入的是integer,最終函數得到的將會是一個string類型的值。
可以基于每一個文件開啟嚴格模式。在嚴格模式中,只有一個與類型聲明完全相符的變量才會被接受,否則將會拋出一個TypeError。 唯一的一個例外是可以將integer傳給一個期望float的函數。
如何使用嚴格類型
使用 declare 語句和strict_types 聲明來啟用嚴格模式:
Caution:
啟用嚴格模式同時也會影響返回值類型聲明.
Note:
嚴格類型適用于在啟用嚴格模式的文件內的函數調用,而不是在那個文件內聲明的函數。 一個沒有啟用嚴格模式的文件內調用了一個在啟用嚴格模式的文件中定義的函數,那么將會遵循調用者的偏好(弱類型),而這個值將會被轉換。
Note:
嚴格類型僅用于標量類型聲明,也正是因為如此,這需要PHP 7.0.0 或更新版本,因為標量類型聲明也是在那個版本中添加的。
以上代碼的結果返回為
int(3)Fatal error: Uncaught TypeError: Argument 1 passed to sum() must be of the type integer, float given, called in - on line 9 and defined in -:4 Stack trace: #0 -(9): sum(1.5, 2.5) #1 {main}thrown in - on line 4總結
以上是生活随笔為你收集整理的php函数的严格类型,严格模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你我贷满标了多长时间到账
- 下一篇: 瑞祥商联卡在哪可以用