🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**一.TypeError和ValueError改进作用** #在PHP 8中,内部函数参数强制执行类型和值验证,如果不允许使用预期的类型或值,则将抛出TypeError或ValueError异常错误. #在PHP 8之前,这会导致PHP警告. 1.TypeError触发条件 提供的值是不是正确的类型. 2.ValueError触发条件 如果提供的值是正确的类型,但PHP在上下文中不可接受,则PHP会引发ValueError异常. &emsp; **二.系统函数引发TypeError** ``` substr('foo', []); try{ substr('linux',[]); }catch(TypeError $e){ echo $e->getMessage(); } ``` &emsp; **三.系统函数引发ValueError** ``` json_decode('"foo"', true, -1); try{ json_decode('"foo"', true, -1); }catch(ValueError $e){ echo $e->getMessage(); } ``` &emsp; **四.自定义函数引发TypeError** ``` function show(string $name){ var_dump($name); } show([]); ``` &emsp; **五.自定义函数引发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(); } ``` &emsp; **配套的PHP8新特性详解视频教程,请查看以下专辑** 链接:[https://www.ixigua.com/6937490165329822219](https://www.ixigua.com/6937490165329822219)