PHP7增加了标量类型声明的特性,标量类型声明有两种模式 :

  • 强制模式(默认)

  • 严格模式

1.语法格式:

declare( strict_types=1 );//代码中通过制定 strict_types 的值( 1 或者 0 )
  • 1 表示严格类型校验模式,作用于函数调用和返回语句;

  • 0 表示弱类型校验模式。

2.使用情况

使用declare(strict_types=1)设置是否开启严格匹配模式,开启后,如果传入的参数不是预先设置的参数类型,将会报错,例如:

<?php
declare(strict_types=1);
function test(int $param) {
	var_dump($param);
}
test("1");//会提示报错

使用declare(strict_types=0)设置是否开启强制模式,开启后,如果传入的参数不是预先设置的参数类型,将不会会报错,例如:

<?php
declare(strict_types=1);
function test(int $param) {
	var_dump($param);
}
test("1");//不会提示报错

小提示:在强制模式下,会判断当前传进来的参数是否是设置的参数类型,如果不是,则会进行强制转换,强制转换不了的,当然也是会报错的,这里一般标量类型之间的强转都是可以通过的。

3.可供使用的类型

  • int

  • float

  • bool

  • string

  • nterfaces

  • array

  • callable


php7新特性之标量类型声明