PHP 7+MySQL 8动态网站开发从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

3.7 PHP 7的新变化2——标量类型的声明

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

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

    declare(strict_types=1);

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

提 示

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

1.强制模式

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

    <?php
    // 强制模式
    function sum(int $ints)
    {
       return array_sum($ints);
    }
    print(sum(2, '3', 4.1));
    ?>

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

2.严格模式

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

    <?php
    // 严格模式
    declare(strict_types=1);
    function sum(int  $ints)
    {
       return array_sum($ints);
    }
    print(sum(2, '3', 4.1));
    ?>

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

图3-16 错误提示信息