PHP开启强类型检验

HP是世界上最好的语言,开发快是它最大的优势,凡事有利必有弊。

众所周知,PHP是弱类型语言,在传递参数时,不会检查变量的类型,再加上动态语言的特性,如果写代码不注意,很容易造成类型不符,自动转换类型,并且程序不会报错,造成数据错误和不完整。

在PHP7之后,通过在文件开头用 declare(strict_types = 1) 定义强类型检验后,当函数传参类型不符时,将会抛出错误。

 

开启类型检验之前:

<?php
//declare(strict_types = 1);
 
function sum(int $a, int $b){
    return $a + $b;
}
$a = '1';
$b = '2';
echo sum($a, $b);
[Running] php "/Users/why/Desktop/php/why.php"
3
[Done] exited with code=0 in 0.3 seconds

 

开启类型检验之后:

<?php
declare(strict_types = 1);
 
function sum(int $a, int $b){
    return $a + $b;
}
$a = '1';
$b = '2';
echo sum($a, $b)

 

[Running] php "/Users/why/Desktop/php/why.php"
PHP Fatal error:  Uncaught TypeError: Argument 1 passed to sum() must be of the type integer, string given, called in /Users/why/Desktop/php/why.php on line 9 and defined in /Users/why/Desktop/php/why.php:4
Stack trace:
#0 /Users/why/Desktop/php/why.php(9): sum('1', '2')
#1 {main}
  thrown in /Users/why/Desktop/php/why.php on line 4
 
[Done] exited with code=255 in 0.325 seconds

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值