PHP声明语句

2023年11月22日09:58:59

介绍

PHP中的clarify语句语法类似于其他流控制结构,例如while,for,foreach等。

语法

declare (directive)
{
   statement1;
   statement2;
   . .
}

块的行为由指令类型定义。三种类型的指令可以在声明语句来提供-编码strict_types指令。

刻度指令

勾号是一种特殊事件的名称,该特殊事件发生在脚本中一定数量的语句被执行时。这些语句在PHP内部,与脚本中的语句(不包括条件和参数表达式)大致相同。任何函数都可以通过 register_tick_function与tick事件相关联。已注册的函数将在声明指令中指定的滴答数后执行。

在以下示例中,myfunction()每次在声明构造中的循环完成5次迭代时都执行一次。

示例

<?php
function myfunction(){
   echo "Hello World\n";
}
register_tick_function("myfunction");
declare (ticks=5){
   for ($i=1; $i<=10; $i++){
      echo $i."\n";
   }
}
?>

输出结果

从命令行运行上述脚本时,将产生以下结果:

1
2
3
4
5
Hello World
6
7
8
9
10
Hello World

PHP还具有unregister_tick_function()来删除函数与tick事件的关联

strict_types指令

PHP是一种弱类型语言,它试图转换数据类型以适合于执行某些操作。如果有一个带有两个整数参数的函数并返回它们的加法,并且调用时任一参数都以float形式给出,则PHP解析器将自动将float转换为整数。如果不需要强制,我们可以在声明构造中指定strict_types = 1

示例

<?php
//默认情况下strict_types为0-
function myfunction(int $x, int $y){
   return $x+$y;
}
echo "total=" . myfunction(1.99, 2.99);
?>

浮点参数被强制为整数以执行加法运算以得到以下结果-

输出结果

total=3

但是,将delcare构造与strict_types = 1一起使用可防止强制

示例

<?php
declare (strict_types=1);
function myfunction(int $x, int $y){
   return $x+$y;
}
echo "total=" . myfunction(1.99, 2.99);
?>

输出结果

这将产生以下错误-

Fatal error: Uncaught TypeError: Argument 1 passed to myfunction() must be of the type integer, float given, called in line 7 and defined in C:\xampp\php\testscript.php:3

编码指令

声明结构具有Encoding指令,可以使用该指令指定脚本的编码方案

示例

<?php
declare(encoding='ISO-8859-1');
echo "This Script uses ISO-8859-1 encoding scheme";
?>

  • 更新时间:2023年11月22日09:58:59 ,共 1390 字。