PHP declare 关键词

定义和用法

declare 关键字为代码块设置执行指令。如果 declare 语句后没有跟随代码块,则该指令将应用于文件中的其余代码。

可以声明三个指令:ticksencodingstrict_types

ticks 指令将在每次执行指定数量的指令后发送一个 tick 事件。可以注册一个 tick 函数,该函数将在每次触发 tick 事件时运行。

encoding 指令用于指示文件使用的字符编码。它不能用于代码块,必须应用于整个文件。

当设置 strict_types 指令时,将类型错误的值传递给带有类型提示的函数参数将引发致命错误,而不是将其强制转换为正确的类型。

相关页面

参考手册:enddeclare 关键词

实例

例子 1

在每条指令后运行一个函数:

<?php
$count = 0;
function example() {
  global $count;
  $count++;
  echo "$count instructions executed<br>";
}

register_tick_function('example');

declare(ticks=1) {
  $cars = ["Ford", "Volvo", "BMW"];
  foreach($cars as $car) {
    echo "$car <br>";
  }
}
?>

亲自试一试

例子 2

在每条指令后运行一个函数:

<?php
declare(strict_types=1);
function sum(int $a, int $b) {
  return $a + $b;
}

// 引发致命错误,因为 "5" 是字符串而不是数字
sum("5", 1);
?>

亲自试一试