@Chiang
2020-01-07T06:14:06.000000Z
字数 699
阅读 823
PHP
- PHP 7 增加了对返回值类型声明的支持。 就如 类型声明一样, 返回值类型声明将指定该函数返回值的类型。同样,返回值类型声明也与 有效类型 中可用的参数类型声明一致。
- 严格类型 也会影响返回值类型声明。在默认的弱模式中,如果返回值与返回值的类型不一致,则会被强制转换为返回值声明的类型。在强模式中,返回值的类型必须正确,否则将会抛出一个TypeError异常.
- Note:当覆盖一个父类方法时,子类方法的返回值类型声明必须与父类一致。如果父类方法没有定义返回类型,那么子类方法可以定义任意的返回值类型声明。
<?phpfunction sum($a, $b): float {return $a + $b;}// Note that a float will be returned.var_dump(sum(1, 2));//float(3)?>
<?phpdeclare(strict_types=1);function sum($a, $b): int {return $a + $b;}var_dump(sum(1, 2));var_dump(sum(1, 2.5));?>
int(3)Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5Stack trace:#0 -(9): sum(1, 2.5)#1 {main}thrown in - on line 5
<?phpclass C {}function getC(): C {return new C;}var_dump(getC());?>
object(C)#1 (0) {}
