Contents
1
2
3
4
5
6
7
8
9
<?php
function testFunc () : ?float {
return 123.59;
}

var_dump(testFunc ());

输出
float(123.59)

好长时间没看过php语法,疑惑这个语法是什么?查了下
这个是7.1加入的类型声明,指示返回类型是float,问号表示可null。
如果return 其他类型则会转为指定类型并return

1
2
3
4
5
6
7
8
9
10
11
12
13
如果声明了严格模式,则报错
<?php

declare(strict_types=1);

function testFunc () : ?float {
return "test";
}

var_dump(testFunc ());

输出
Fatal error: Uncaught TypeError: Return value of testFunc() must be of the type float or null, string returned in xxxxxxx/index.php:258 Stack trace: #0 xxxxxxx/index.php(258): testFunc() #1 {main} thrown in xxxxxxx/index.php on line 258

btw,它还支持反馈对象类型
PHP: Returning values - Manual

Contents