搜索
首页后端开发PHP7php7如何开启强类型模式

php7如何开启强类型模式

Jun 01, 2021 am 09:17 AM
php强类型

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

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 &#39;Error:&#39;.$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视频教程

以上是php7如何开启强类型模式的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:csdn。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用