signed

QiShunwang

“诚信为本、客户至上”

PHP学习笔记4:标量类型的声明

2020/12/28 5:58:17   来源:

默认情况下,所有的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(浮点)。

还有一点,如果定义了严格模式,返回值如果不符合规定的数据类型也会报错。