PHP學習筆記4:標量型別的宣告

Eiffi_老飝發表於2020-12-28

預設情況下,所有的php檔案都處於弱型別效驗模式。PHP7加了標量型別的宣告特性,標量型別宣告有兩種模式:強制預設(預設)和嚴格模式
標量型別的宣告語法格式如下:

declare(strict_types=1);

通過指定strict_types的值(1或者0)來表示效驗模式:1表示嚴格型別效驗模式,作用於函式呼叫和返回語句;0表示強制型別效驗模式。
提示:可以宣告標量型別的引數型別包括int、float、bool、string、interfaces、array和callable。

強制模式

function sum(int ... $ints) {
	return array_sum($ints);
}
print(sum(2, '3', 4.1));

執行結果是9,程式碼中的數字4.1會先轉換成4,然後再進行相加的操作。

嚴格模式

<?php
declare(strict_types=1); //嚴格模式,必須寫在首行
function sum(int ... $ints) {
	return array_sum($ints);
}
print(sum(2, '3', 4.1));
?>

當然執行這個會出錯,主要是傳遞給sum的三個引數,有兩個不是整型:‘3’(字串)和4.1(浮點)。

還有一點,如果定義了嚴格模式,返回值如果不符合規定的資料型別也會報錯。

相關文章