本文由 发布,转载请注明出处,如有问题请联系我们! 发布时间: 2021-08-01php最新技术开发-phpstudy安装及使用教程
加载中1系统软件涵数引起种类不正确合值不正确出现异常。
1.TypeError和ValueError #的改善在PHP 8中,內部函数调用申请强制执行种类合值认证,假如不允许预估的种类或值,将引起TypeError或ValueError出现异常。#在PHP 8以前,这将造成PHP警示。
1.1给予的值。种类不正确开启标准是合理的种类。
2.ValueError开启标准假如给予的值是合理的种类,可是PHP在前后文中是不能做的,PHP将抛出去ValueError出现异常。
2.系统功能造成的种类不正确。
substr('foo', []);try{substr('linux',[]);}catch(TypeError $e){echo $e->getMessage();}3.系统软件涵数抛出去值不正确。
json_decode('"foo"', true, -1);try{json_decode('"foo"', true, -1);}catch(ValueError $e){echo $e->getMessage();}4.自定义函数引起的种类不正确。
function show(string $name){var_dump($name);}show([]);形容词 (verb的简称)自定义函数抛出去值不正确。
function show(int $number){if($number123;echo $fn();// 第5环节echo (fn()=>123)();3.箭头函数 抛出异常1。实行前界定。
$fn=fn()=>throw new Exception('error');try{$fn();}catch(Exception $e){echo $e->getMessage();}2.与此同时界定和实行。
(fn() => throw new Exception('oops'))();四.三元表达式的应用。
$name=false;$age=20;$r=$name ? $name : $age;$r=$name ?: $age;$r=$name ?? $age;var_dump($r);5.三元表达式 抛出异常#假如前边为真,则回到第二个值,不然回到第三个值。
$value = $name ? $name : throw new Exception('value not set');$value = $name ?: throw new Exception('value not set');假如#之前存有,则回到第一个值;不然,回到第二个值。
$value = $name ?? throw new Exception('value not set');3沒有可变性捕捉的捕捉。
1.它无须在catch reading中撰写$e变量。
二.英语的语法
try{...}catch(Exception){...}三.事例
try{(fn()=>throw new Exception('error'))();}catch(Exception){echo 'Exception error!';}4默认设置错误报告设定为E_ALL。
1.配备方式# php.ini。
error_reporting = E_ALL2.修复旧设定#屏蔽掉废旧不正确,提醒不正确和英语的语法密封性检验。
E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE3.屏蔽掉全部不正确。
display_errors = Off四.配备起效。
pkill -USR2 php-fpm5默认设置表明PHP运行不正确。
#php.ini
1.默认设置PHP运行不正确。
display_startup_errors = On2.检测PHP运行不正确1。发生运行不正确。
session.name=''2.逐渐检测。
pkill php-fpm/usr/local/php/sbin/php-fpm3.屏蔽掉PHP运行不正确1 .运行不正确。
display_startup_errors = Off2.操纵偏差水准。
error_reporting = E_ALL & ~E_WARNING3.检测結果。
pkill php-fpm/usr/local/php/sbin/php-fpm4.商业服务提议关掉。
6默认设置状况下,肯定抛出异常。
1.Assert improvement #php.ini默认设置开启# assert(true = = = false);
1.较低版中不成功的肯定将引起警示,但不容易引起出现异常。(PHP5)。
assert.exception=On2.PHP8不成功的肯定将立即引起出现异常。(PHP7,PHP 8)。
assert.exception=On二.肯定回调函数
1.display _ errors = off2。肯定。回调函数= assert _ fail 3。回调函数试验。
assert(5setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);2.获得
$pdo->getAttribute(PDO::ATTR_ERRMODE);七个。pdo实际操作客户表。
$sql='select * from user2';$smt=$pdo->prepare($sql);$smt->execute();$arr=$smt->fetchAll(PDO::FETCH_ASSOC);八个。pdo实际操作的出现异常捕捉。
try{$pdo=new PDO('sqlite:/sqlite3/php8.db');$smt=$pdo->prepare('select * from user2');$smt->execute();$rows=$smt->fetchAll(PDO::FETCH_ASSOC);}catch(PDOException $e){echo $e->getMessage();}