declare(strict_type=1);是php7引入的
严格类型检查模式
的指定语法
单个文件时strict_types
应写在哪里
基本语法
<?php
function add(int $a, int $b): int
{
return $a + $b;
}
var_dump(add(1.0, 2.0));
在此状态下执行独立时,输出int(3)
我们提供的是double
类型,但php7
能很好的处理它,和php5
时代没什么区别
做了如下变更
<?php
declare(strict_types=1); //加入这句
function add(int $a, int $b): int
{
return $a + $b;
}
var_dump(add(1.0, 2.0));
有TypeError
产生,如下
PHP Fatal error: Uncaught TypeError: Argument 1 passed to add() must be of the type integer, float given, called in /Users/hiraku/sandbox/stricttypes/A.php on line 9 and defined in /Users/hiraku/sandbox/stricttypes/A.php:4
Stack trace:
#0 /Users/hiraku/sandbox/str