以下问题运行在php5.5
小弟刚学PHP没几天
求大神指教
1.官方文档给出的这个实例中declare(strict_type=1);
这个严格声明为何显示为一个不支持的声明...
然后把严格声明去掉后,下面两个int
型的sum(1,2)
也无法传入函数= =
<?php
declare(strict_types=1);
function sum(int $a, int $b) {
return $a + $b;
}
var_dump(sum(1, 2));
var_dump(sum(1.5, 2.5));
?>
2.这个实例中,function
后面的: float
是啥子意思?
是不是传进的数return
出来的全变成浮点型?
然后依然执行错误
<?php
function sum($a, $b): float {
return $a + $b;
}
// Note that a float will be returned.
var_dump(sum(1, 2));
?>
function后面的: float指的是该函数返回值的类型。
强类型strict_type是从PHP7开始才引入的东西,默认是不开启的,以后也不会默认开启,是一个很有争议性的特性。PHP之父rasmus,Zend公司创始人andi,PHP7性能方面的核心开发者dmitry和鸟哥laruence都投了反对票:
https://wiki.php.net/rfc/scalar_type_hints_v5