PHP 7 - 标量类型声明


PHP 7 中引入了一项新功能,即标量类型声明。标量类型声明有两个选项 -

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

  • strict - 严格模式必须明确暗示。

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

  • 整数
  • 漂浮
  • 布尔值
  • 细绳
  • 接口
  • 大批
  • 可调用的

示例 - 强制模式

<?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, ...