如何设置PHP7启用严格类型提示功能?

2026-04-03 12:081阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计822个文字,预计阅读时间需要4分钟。

如何设置PHP7启用严格类型提示功能?

本文为家长介绍PHP7开启强类型模式的设置方法。有一定的参考价值,如有需要,可参考以下步骤,希望对家长有所帮助。

PHP是一种弱类型编程语言,但PHP7引入了强类型模式的设置。以下是如何在PHP7中开启强类型模式的步骤:

1. 打开PHP配置文件`php.ini`。

2.在`engine`部分找到`short_open_tag`设置,将其值设置为`Off`。

3.找到`asp_tags`设置,同样将其设置为`Off`。

4.找到`register_globals`设置,将其设置为`Off`。

5.找到`magic_quotes_gpc`设置,将其设置为`Off`。

6.在`zend`部分找到`zend_ze1_compatibility_mode`设置,将其设置为`Off`。

7.找到`zend_extension`设置,确保它指向了正确的扩展模块。

8.保存并关闭`php.ini`文件。

完成以上步骤后,PHP7将启用强类型模式,从而提高代码的安全性和稳定性。

本篇文章给大家介绍一下php7开启强类型模式的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

我们知道php是一种弱类型的编程语言,但是php7已经有所改变,可以支持代码开启强类型模式了,好消息。

php7开启强类型模式,这是php7相比之前版本效率提高的部分原因,先来看两个例子

如何设置PHP7启用严格类型提示功能?

首先

<?php function sum($a,$b):float { return $a+$b; } var_dump(sum(1,2)); var_dump(sum(1,2.5)); ?>

输出结果为:

float(3) float(3.5)

然后加上强类型模式

<?php define(strict_types=1);//注意这一句必须要放在第一行,而且顶格 function sum($a,$b):float { return $a+$b; } var_dump(sum(1,2)); var_dump(sum(1,2.5)); ?>

输出结果为:

float(3) float(3.5)

从这里好像看不出区别,因为int->float类型的转换是允许的。

咱们再看一个例子:

function sum(int $a,int $b):float { return $a+$b; } var_dump(sum(1,2)); var_dump(sum(1,2.5));

输出结果为:

float(3) float(3)

这是因为2.5被强制转化为int类型,值为2,1+2=3,结果也没有什么问题,但是一般来说这种隐式的转化太过于难理解,可能不是我们预期的结果。

所以我们加入强类型模式来看一下输出结果,代码如下:

<?php declare(strict_types=1); function sum(int $a,int $b):float { return $a+$b; } var_dump(sum(1,2)); var_dump(sum(1,2.5)); ?>

输出结果为:

float(3) Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, float given, called in /home/www/learn.php on line 8 and defined in /home/www/learn.php:3 Stack trace: #0 /home/www/learn.php(8): sum(1, 2.5) #1 {main} thrown in /home/www/learn.php on line 3

这里可以看出,强类型模式生效了,sum(1,2.5)一句出错了,2.5因为不是int类型导致程序出现错误。

如果遇到这种情况,让我们通过捕获异常的方式来捕获这种错误

代码如下:

<?php declare(strict_types=1); function sum(int $a,int $b):float { return $a+$b; } try { var_dump(sum(1,2)); var_dump(sum(1,2.5)); } catch(TypeError $e) { echo 'Error:'.$e->getMessage(); } ?>

输出结果为:

float(3) Error:Argument 2 passed to sum() must be of the type integer, float given, called in /home/www/learn.php on line 9

推荐学习:php视频教程

本文共计822个文字,预计阅读时间需要4分钟。

如何设置PHP7启用严格类型提示功能?

本文为家长介绍PHP7开启强类型模式的设置方法。有一定的参考价值,如有需要,可参考以下步骤,希望对家长有所帮助。

PHP是一种弱类型编程语言,但PHP7引入了强类型模式的设置。以下是如何在PHP7中开启强类型模式的步骤:

1. 打开PHP配置文件`php.ini`。

2.在`engine`部分找到`short_open_tag`设置,将其值设置为`Off`。

3.找到`asp_tags`设置,同样将其设置为`Off`。

4.找到`register_globals`设置,将其设置为`Off`。

5.找到`magic_quotes_gpc`设置,将其设置为`Off`。

6.在`zend`部分找到`zend_ze1_compatibility_mode`设置,将其设置为`Off`。

7.找到`zend_extension`设置,确保它指向了正确的扩展模块。

8.保存并关闭`php.ini`文件。

完成以上步骤后,PHP7将启用强类型模式,从而提高代码的安全性和稳定性。

本篇文章给大家介绍一下php7开启强类型模式的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

我们知道php是一种弱类型的编程语言,但是php7已经有所改变,可以支持代码开启强类型模式了,好消息。

php7开启强类型模式,这是php7相比之前版本效率提高的部分原因,先来看两个例子

如何设置PHP7启用严格类型提示功能?

首先

<?php function sum($a,$b):float { return $a+$b; } var_dump(sum(1,2)); var_dump(sum(1,2.5)); ?>

输出结果为:

float(3) float(3.5)

然后加上强类型模式

<?php define(strict_types=1);//注意这一句必须要放在第一行,而且顶格 function sum($a,$b):float { return $a+$b; } var_dump(sum(1,2)); var_dump(sum(1,2.5)); ?>

输出结果为:

float(3) float(3.5)

从这里好像看不出区别,因为int->float类型的转换是允许的。

咱们再看一个例子:

function sum(int $a,int $b):float { return $a+$b; } var_dump(sum(1,2)); var_dump(sum(1,2.5));

输出结果为:

float(3) float(3)

这是因为2.5被强制转化为int类型,值为2,1+2=3,结果也没有什么问题,但是一般来说这种隐式的转化太过于难理解,可能不是我们预期的结果。

所以我们加入强类型模式来看一下输出结果,代码如下:

<?php declare(strict_types=1); function sum(int $a,int $b):float { return $a+$b; } var_dump(sum(1,2)); var_dump(sum(1,2.5)); ?>

输出结果为:

float(3) Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, float given, called in /home/www/learn.php on line 8 and defined in /home/www/learn.php:3 Stack trace: #0 /home/www/learn.php(8): sum(1, 2.5) #1 {main} thrown in /home/www/learn.php on line 3

这里可以看出,强类型模式生效了,sum(1,2.5)一句出错了,2.5因为不是int类型导致程序出现错误。

如果遇到这种情况,让我们通过捕获异常的方式来捕获这种错误

代码如下:

<?php declare(strict_types=1); function sum(int $a,int $b):float { return $a+$b; } try { var_dump(sum(1,2)); var_dump(sum(1,2.5)); } catch(TypeError $e) { echo 'Error:'.$e->getMessage(); } ?>

输出结果为:

float(3) Error:Argument 2 passed to sum() must be of the type integer, float given, called in /home/www/learn.php on line 9

推荐学习:php视频教程