php7如何开启强类型模式
时间:2021-06-08
来源:互联网
今天PHP爱好者给大家带来本篇文章给大家介绍一下php7开启强类型模式的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
我们知道php是一种弱类型的编程语言,但是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
以上就是php7如何开启强类型模式的详细内容,更多请关注php爱好者其它相关文章!
-
动态ip和静态ip是什么意思 动态IP和静态IP的区别 时间:2025-08-13
-
jQuery hover()方法详解(定义、语法、参数、示例代码) 时间:2025-08-13
-
Linux端口映射的几种方法 端口映射未响应的原因及解决方法 时间:2025-08-13
-
so文件是什么?有什么用?怎么打开? 时间:2025-08-13
-
Linux lspci命令详解(功能、参数、使用示例、应用场景) 时间:2025-08-13
-
HTML中marquee标签的属性参数和用法详解 时间:2025-08-12
今日更新
-
我黑切呢是什么梗-揭秘游戏圈经典爆笑名场面
阅读:18
-
系鞋带是什么梗揭秘网络流行暗号-系鞋带背后的隐藏含义你知道吗
阅读:18
-
小学生梗是什么梗-揭秘网络流行语背后的趣味故事
阅读:18
-
学姐的谐音梗是什么梗啊-原来是把学姐名字玩出搞笑谐音啦
阅读:18
-
易烊千玺是什么梗揭秘顶流爱豆的爆笑名场面-易烊千玺是什么梗盘点那些年四字弟弟的神操作
阅读:18
-
约克夏梗是什么梗-揭秘这只可爱狗狗的网络爆红原因
阅读:18
-
直播间你配吗是什么梗-揭秘主播怼人新套路
阅读:18
-
最近出的梗是什么梗-揭秘全网爆火新梗速看
阅读:18
-
最近厨师是什么梗揭秘-厨师梗爆火背后真相全解析
阅读:18
-
最近厨子是什么梗揭秘爆火背后真相-全网热议的厨子梗原来是这个意思
阅读:18