PHP 7中的类型提示
PHP7在标量类型声明和返回类型声明中使用两种类型的提示-
弱类型提示
严格的类型提示
弱类型提示
默认情况下,PHP7在弱类型检查中起作用,类型检查mode.Weak不会给出任何错误或致命error.When的类型声明不匹配,它只会执行代码而不会引发任何错误。
通过使用strict_typesdeclare(),我们可以控制弱类型检查。
declare(strict_types=0); //weak type-checking; we should set the strict value = 0
弱类型提示示例1
输出结果该代码将产生以下输出-
30
解释
在上面的示例中,我们没有对参数使用严格的值。我们使用了两个整数变量x和y。对于x=10,y使用浮点数20.20,但是y不会产生任何错误;它只会给出输出整数值30。
例子2
输出结果上面程序的输出将是-
int(9)
严格的类型提示
当类型声明不匹配时,严格的类型提示将给出致命错误。我们可以说严格类型提示接受类型声明的确切类型的变量,否则它将引发TypeError不匹配。
在严格类型提示中,必须声明文件中的第一条语句(strict_types=1),否则将产生编译器错误。它不会影响文件中未指定的其他包含文件,这意味着它只会影响所使用的特定文件。
严格类型提示指令是完全编译时的,不能在运行时进行控制。
严格类型提示示例1
输出结果上面的严格类型提示程序将是-
float(5.2) Fatal error: Uncaught TypeError: Argument 2 passed to returnadd() must be of the type float, string given, called in C:\xampp\htdocs\gud.php on line 7 and defined in C:\xampp\htdocs\gud.php:3 Stack trace: #0 C:\xampp\htdocs\gud.php(7): returnadd(3, '2 days') #1 {main} thrown in C:\xampp\htdocs\gud.php on line 3
严格类型提示示例2
它将产生输出“致命错误”
在上面的严格类型声明示例中,如果我们声明strict_type值为1,则代码将给出输出“致命错误:UncaughtTypeError:传递给参数1add()的类型必须为int,给出字符串”。