php x x value,6-1 系统函数引发TypeError和ValueError异常

**一.TypeError和ValueError改进作用**

#在PHP 8中,内部函数参数强制执行类型和值验证,如果不允许使用预期的类型或值,则将抛出TypeError或ValueError异常错误.

#在PHP 8之前,这会导致PHP警告.

1.TypeError触发条件

提供的值是不是正确的类型.

2.ValueError触发条件

如果提供的值是正确的类型,但PHP在上下文中不可接受,则PHP会引发ValueError异常.

**二.系统函数引发TypeError**

```

substr('foo', []);

try{

substr('linux',[]);

}catch(TypeError $e){

echo $e->getMessage();

}

```

**三.系统函数引发ValueError**

```

json_decode('"foo"', true, -1);

try{

json_decode('"foo"', true, -1);

}catch(ValueError $e){

echo $e->getMessage();

}

```

**四.自定义函数引发TypeError**

```

function show(string $name){

var_dump($name);

}

show([]);

```

**五.自定义函数引发ValueError**

```

function show(int $number){

if($number<10){

throw new ValueError('this value must be greater or equal 10');

}else{

echo $number;

}

}

show(5);

#try捕捉

function show(int $number){

if($number<10){

throw new ValueError('the number must be greater and equal 10');

}else{

echo $number;

}

}

try{

show(5);

}catch(ValueError $e){

echo $e->getMessage();

}

```

**配套的PHP8新特性详解视频教程,请查看以下专辑**

链接:[https://www.ixigua.com/6937490165329822219](https://www.ixigua.com/6937490165329822219)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值