PHP 7 - 标量类型声明

在PHP 7中,引入了一个新功能,Scalar类型声明.标量类型声明有两个选项 :

  • 强制  - 强制是默认模式,不需要指定.

  • 严格  - 严格模式必须明确提示.

可以使用上述模式强制执行以下函数参数类型 :

  • int

  • float

  • bool

  • string

  • interfaces

  • 数组

  • callable

示例 - 强制模式

<?php
   // Coercive mode
   function sum(int ...$ints) {
      return array_sum($ints);
   }
   print(sum(2, '3', 4.1));
?>

它产生以下浏览器输出 :

9

示例 - 严格模式

<?php
   // Strict mode
   declare(strict_types=1);
   function sum(int ...$ints) {
      return array_sum($ints);
   }
   print(sum(2, '3', 4.1));
?>

它产生以下浏览器输出 :

Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ...