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_ALL

2.修复旧设定#屏蔽掉废旧不正确,提醒不正确和英语的语法密封性检验。

E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE

3.屏蔽掉全部不正确。

display_errors = Off

四.配备起效。

pkill -USR2 php-fpm

5默认设置表明PHP运行不正确。

#php.ini

1.默认设置PHP运行不正确。

display_startup_errors = On

2.检测PHP运行不正确1。发生运行不正确。

session.name=''

2.逐渐检测。

pkill php-fpm/usr/local/php/sbin/php-fpm

3.屏蔽掉PHP运行不正确1 .运行不正确。

display_startup_errors = Off

2.操纵偏差水准。

error_reporting = E_ALL & ~E_WARNING

3.检测結果。

pkill php-fpm/usr/local/php/sbin/php-fpm

4.商业服务提议关掉。

6默认设置状况下,肯定抛出异常。

1.Assert improvement #php.ini默认设置开启# assert(true = = = false);

1.较低版中不成功的肯定将引起警示,但不容易引起出现异常。(PHP5)。

assert.exception=On

2.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();}

评论(0条)

刀客源码 游客评论