PHP 8从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

3.7 标量类型的声明

默认情况下,所有的PHP文件都处于弱类型校验模式。PHP 8有标量类型声明的特性,标量类型声明有两种模式:强制模式(默认)和严格模式。

标量类型声明的语法格式如下:

declare(strict_types=1);

通过指定strict_types的值(1或者0)来表示声明模式:1表示严格类型声明模式,作用于函数调用和返回语句;0表示强制类型声明模式。

提示

可以声明标量类型的参数类型包括int、float、bool、string、interfaces、array和callable。

1.强制模式

下面通过案例来学习强制模式的含义,代码如下:

<?php
// 强制模式
function sum(int $a,int $b)
{
   return $a+$b;
}
print(sum(2, 4.1));
?>

上面程序的输出结果为6。代码中的4.1先转换为整数4,再进行相加操作。

2.严格模式

下面通过案例来学习严格模式的含义,代码如下:

<?php
// 严格模式
declare(strict_types=1);
function sum(int $a,int $b)
{
   return $a+$b;
}
print(sum(2, 4.1));
?>

以上程序由于采用了严格模式,因此如果参数中出现的不是整数类型,程序执行时就会报错,如图3-16所示。

图3-16 错误提示信息