首页 » Web前端 » phpfilledout技巧_PHP 措辞的根本语法四

phpfilledout技巧_PHP 措辞的根本语法四

访客 2024-12-14 0

扫一扫用手机浏览

文章目录 [+]

cookie 常用于识别用户。

什么是 Cookie?

phpfilledout技巧_PHP 措辞的根本语法四

cookie 常用于识别用户。
cookie 是做事器留在用户打算机中的小文件。
每当相同的打算机通

phpfilledout技巧_PHP 措辞的根本语法四
(图片来自网络侵删)

过浏览器要求页面时,它同时会发送 cookie。
通过 PHP,您能够创建并取回 cookie 的值。

如何创建 cookie?

setcookie() 函数用于设置 cookie。

注释:setcookie() 函数必须位于 <html> 标签之前。

语法

setcookie(name, value, expire, path, domain);

例子

不才面的例子中,我们将创建名为 \"大众user\公众 的 cookie,把为它赋值 \"大众Alex Porter\"大众。
我们也规

定了此 cookie 在一小时后过期:

<?php

setcookie(\"大众user\"大众, \公众Alex Porter\"大众, time()+3600);

?>

<html>

<body>

</body>

</html>

注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防

止 URL 编码,请利用 setrawcookie() 取而代之)。

如何取回 Cookie 的值?

PHP 的 $_COOKIE 变量用于取回 cookie 的值。

不才面的例子中,我们取回了名为 \"大众user\"大众 的 cookie 的值,并把它显示在了页面上:

<?php

// Print a cookie

echo $_COOKIE[\公众user\公众];

// A way to view all cookies

print_r($_COOKIE);

?>

不才面的例子中,我们利用 isset() 函数来确认是否已设置了 cookie:

<html>

<body>

<?php

if (isset($_COOKIE[\"大众user\公众]))

echo \"大众Welcome \"大众 . $_COOKIE[\"大众user\"大众] . \"大众!<br />\"大众;

else

echo \公众Welcome guest!<br />\公众;

?>

</body>

</html>

如何删除 cookie?

当删除 cookie 时,您应该使过期日期变更为过去的韶光点。

删除的例子:

<?php

// set the expiration date to one hour ago

setcookie(\"大众user\"大众, \公众\"大众, time()-3600);

?>

如果浏览器不支持 cookie 该怎么办?

如果您的运用程序涉及不支持 cookie 的浏览器,您就不得不采纳其他方法在运用程序中从

一张页面向另一张页面通报信息。
一种办法是从表单通报数据(有关表单和用户输入的内容,

稍早前我们已经在本教程中先容过了)。

下面的表单在用户单击提交按钮时向 \"大众welcome.php\"大众 提交了用户输入:

<html>

<body>

<form action=\"大众welcome.php\"大众 method=\"大众post\"大众>

Name: <input type=\公众text\"大众 name=\公众name\"大众 />

Age: <input type=\"大众text\公众 name=\"大众age\公众 />

<input type=\"大众submit\"大众 />

</form>

</body>

</html>

取回 \"大众welcome.php\"大众 中的值,就像这样:

<html>

<body>

Welcome <?php echo $_POST[\"大众name\"大众]; ?>.<br />

You are <?php echo $_POST[\"大众age\"大众]; ?> years old.

</body>

</html>

PHP Sessions

PHP session 变量用于存储有关用户会话的信息,或变动用户会话的设置。
Session 变量保存

的信息是单一用户的,并且可供应用程序中的所有页面利用。

PHP Session 变量

当您运行一个运用程序时,您会打开它,做些变动,然后关闭它。
这很像一次会话。
打算机

清楚你是谁。
它知道你何时启动运用程序,并在何时终止。
但是在因特网上,存在一个问题:

做事器不知道你是谁以及你做什么,这是由于 HTTP 地址不能坚持状态。

通过在做事器上存储用户信息以便随后利用,PHP session 办理了这个问题(比如用户名称、

购买商品等)。
不过,会话信息是临时的,在用户离开网站后将被删除。
如果您须要永久储

存信息,可以把数据存储在数据库中。

Session 的事情机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变

量。
UID 存储在 cookie 中,亦或通过 URL 进行传导。

开始 PHP Session

在您把用户信息存储到 PHP session 中之前,首先必须启动会话。

注释:session_start() 函数必须位于 <html> 标签之前:

<?php session_start(); ?>

<html>

<body>

</body>

</html>

上面的代码会向做事器注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话

分配一个 UID。

存储 Session 变量

存储和取回 session 变量的精确方法是利用 PHP $_SESSION 变量:

<?php

session_start();

// store session data

$_SESSION['views']=1;

?>

<html>

<body>

<?php

//retrieve session data

echo \公众Pageviews=\"大众. $_SESSION['views'];

?>

</body>

</html>

输出:

Pageviews=1

不才面的例子中,我们创建了一个大略的 page-view 计数器。
isset() 函数检测是否已设置

\"大众views\公众 变量。
如果已设置 \公众views\"大众 变量,我们累加计数器。
如果 \公众views\"大众 不存在,则我们

创建 \"大众views\公众 变量,并把它设置为 1:

<?php

session_start();

if(isset($_SESSION['views']))

$_SESSION['views']=$_SESSION['views']+1;

else

$_SESSION['views']=1;

echo \"大众Views=\"大众. $_SESSION['views'];

?>

闭幕 Session

如果您希望删除某些 session 数据,可以利用 unset() 或 session_destroy() 函数。

unset() 函数用于开释指定的 session 变量:

<?php

unset($_SESSION['views']);

?>

您也可以通过 session_destroy() 函数彻底闭幕 session:

<?php

session_destroy();

?>

注释:session_destroy() 将重置 session,您将失落去所有已存储的 session 数据。

PHP 发送电子邮件

PHP 许可您从脚本直接发送电子邮件。

PHP mail() 函数

PHP mail() 函数用于从脚本中发送电子邮件。

语法

mail(to,subject,message,headers,parameters)

参数描述

to 必需。
规定 email 吸收者。

subject 必需。
规定 email 的主题。
注释:该参数不能包含任何新行字符。

message 必需。
定义要发送的。
应利用 LF (\n) 来分隔各行。

headers

可选。
规定附加的标题,比如 From、Cc 以及 Bcc。

应该利用 CRLF (\r\n) 分隔附加的标题。

parameters 可选。
对邮件发送程序规定额外的参数。

注释:PHP 须要一个已安装且正在运行的邮件系统,以便使邮件函数可用。
所用的程序通过

在 php.ini 文件中的配置设置进行定义。
请在我们的 PHP Mail 参考手册 阅读更多内容。

PHP 大略单纯 E-Mail

通过 PHP 发送电子邮件的最大略的办法是发送一封文本 email。

不才面的例子中,我们首先声明变量($to, $subject, $message, $from, $headers),然后我们在

mail() 函数中利用这些变量来发送了一封 e-mail:

<?php

$to = \"大众someone@example.com\"大众;

$subject = \"大众Test mail\"大众;

$message = \公众Hello! This is a simple email message.\"大众;

$from = \"大众someonelse@example.com\公众;

$headers = \公众From: $from\"大众;

mail($to,$subject,$message,$headers);

echo \"大众Mail Sent.\公众;

?>

PHP Mail Form

通过 PHP,您能够在自己的站点制作一个反馈表单。
下面的例子向指定的 e-mail 地址发送

了一条文本:

<html>

<body>

<?php

if (isset($_REQUEST['email']))

//if \"大众email\"大众 is filled out, send email

{

//send email

$email = $_REQUEST['email'] ;

$subject = $_REQUEST['subject'] ;

$message = $_REQUEST['message'] ;

mail( \公众someone@example.com\公众, \"大众Subject: $subject\公众,

$message, \"大众From: $email\"大众 );

echo \"大众Thank you for using our mail form\"大众;

}

else

//if \"大众email\"大众 is not filled out, display the form

{

echo \"大众<form method='post' action='mailform.php'>

Email: <input name='email' type='text' /><br />

Subject: <input name='subject' type='text' /><br />

Message:<br />

<textarea name='message' rows='15' cols='40'>

</textarea><br />

<input type='submit' />

</form>\公众;

}

?>

</body>

</html>

例子阐明:

1. 首先,检讨是否填写了邮件输入框

2. 如果未填写(比如在页面被首次访问时),输出 HTML 表单

3. 如果已填写(在表单被填写后),从表单发送邮件

4. 当点击提交按钮后,重新载入页面,显示邮件发送成功的

PHP 缺点处理

在 PHP 中,默认的缺点处理很大略。
一条会被发送到浏览器,这条带有文件名、

行号以及一条描述缺点的。

PHP 缺点处理

在创建脚本和 web 运用程序时,缺点处理是一个主要的部分。
如果您的代码短缺缺点检测

编码,那么程序看上去很不专业,也为安全风险洞开了大门。

本教程先容了 PHP 中一些最为主要的缺点检测方法。

我们将为您讲解不同的缺点处理方法:

· 大略的 \公众die()\公众 语句

· 自定义缺点和缺点触发器

· 缺点报告

基本的缺点处理:利用 die() 函数

第一个例子展示了一个打开文本文件的大略脚本:

<?php

$file=fopen(\公众welcome.txt\"大众,\公众r\"大众);

?>

如果文件不存在,您会得到类似这样的缺点:

Warning: fopen(welcome.txt) [function.fopen]: failed to open stream:

No such file or directory in C:\webfolder\test.php on line 2

为了避免用户得到类似上面的缺点,我们在访问文件之前检测该文件是否存在:

<?php

if(!file_exists(\公众welcome.txt\"大众))

{

die(\"大众File not found\公众);

}

else

{

$file=fopen(\公众welcome.txt\公众,\公众r\公众);

}

?>

现在,如果文件不存在,您会得到类似这样的缺点:

File not found

比起之前的代码,上面的代码更有效,这是由于它采取了一个大略的缺点处理机制在缺点之

后终止了脚本。

不过,大略地终止脚本并不总是恰当的办法。
让我们研究一下用于处理缺点的备选的 PHP

函数。

创建自定义缺点处理器

创建一个自定义的缺点处理器非常大略。
我们很大略地创建了一个专用函数,可以在 PHP

中发生缺点时调用该函数。

该函数必须有能力处理至少两个参数 (error level 和 error message),但是可以接管最多五个

参数(可选的:file, line-number 以及 error context):

语法

error_function(error_level,error_message,

error_file,error_line,error_context)

参数描述

error_level

必需。
为用户定义的缺点规定缺点报告级别。
必须是一个值数。

拜会下面的表格:缺点报告级别。

error_message 必需。
为用户定义的缺点规定缺点。

error_file 可选。
规定缺点在个中发生的文件名。

error_line 可选。
规定缺点发生的行号。

error_context 可选。
规定一个数组,包含了当缺点发生时在用的每个变量以及它们的值。

缺点报告级别

这些缺点报告级别是缺点处理程序旨在处理的缺点的不同的类型:

值常量描述

2 E_WARNING 非致命的 run-time 缺点。
不停息脚本实行。

8 E_NOTICE

Run-time 关照。

脚本创造可能有缺点发生,但也可能在脚本正常运行时发生。

256 E_USER_ERROR 致命的用户天生的缺点。
这类似于程序员利用 PHP 函数

trigger_error() 设置的 E_ERROR。

512 E_USER_WARNING 非致命的用户天生的警告。
这类似于程序员利用 PHP 函数

trigger_error() 设置的 E_WARNING。

1024 E_USER_NOTICE 用户天生的关照。
这类似于程序员利用 PHP 函数

trigger_error() 设置的 E_NOTICE。

4096 E_RECOVERABLE_ER

ROR

可捕获的致命缺点。
类似 E_ERROR,但可被用户定义的处

理程序捕获。
(拜会 set_error_handler())

8191 E_ALL

所有缺点和警告,除级别 E_STRICT 以外。

(在 PHP 6.0,E_STRICT 是 E_ALL 的一部分)

现在,让我们创建一个处理缺点的函数:

function customError($errno, $errstr)

{

echo \"大众<b>Error:</b> [$errno] $errstr<br />\"大众;

echo \"大众Ending Script\公众;

die();

}

上面的代码是一个大略的缺点处理函数。
当它被触发时,它会取得缺点级别和缺点。

后它会输出错误级别和,并终止脚本。

现在,我们已经创建了一个缺点处理函数,我们须要确定在何时触发该函数。

Set Error Handler

PHP 的默认缺点处理程序是内建的缺点处理程序。
我们打算把上面的函数改造为脚本运行期

间的默认缺点处理程序。

可以修正缺点处理程序,使其仅运用到某些缺点,这样脚本就可以不同的办法来处理不同的

缺点。
不过,在本例中,我们打算针对所有缺点来利用我们的自定义缺点处理程序:

set_error_handler(\"大众customError\"大众);

由于我们希望我们的自定义函数来处理所有缺点,set_error_handler() 仅须要一个参数,可以

添加第二个参数来规定缺点级别。

实例

通过考试测验输出不存在的变量,来测试这个缺点处理程序:

<?php

//error handler function

function customError($errno, $errstr)

{

echo \"大众<b>Error:</b> [$errno] $errstr\"大众;

}

//set error handler

set_error_handler(\"大众customError\"大众);

//trigger error

echo($test);

?>

以上代码的输出该当类似这样:

Custom error: [8] Undefined variable: test

触发缺点

在脚本中用户输入数据的位置,当用户的输入无效时触发缺点的很有用的。
在 PHP 中,这

个任务由 trigger_error() 完成。

例子

在本例中,如果 \"大众test\公众 变量大于 \"大众1\"大众,就会发生缺点:

<?php

$test=2;

if ($test>1)

{

trigger_error(\公众Value must be 1 or below\"大众);

}

?>

以上代码的输出该当类似这样:

Notice: Value must be 1 or below

in C:\webfolder\test.php on line 6

您可以在脚本中任何位置触发缺点,通过添加的第二个参数,您能够规定所触发的缺点级别。

可能的缺点类型:

· E_USER_ERROR - 致命的用户天生的 run-time 缺点。
缺点无法规复。
脚本实行被中

断。

· E_USER_WARNING - 非致命的用户天生的 run-time 警告。
脚本实行不被中断。

· E_USER_NOTICE - 默认。
用户天生的 run-time 关照。
脚本创造了可能的缺点,也有

可能在脚本运行正常时发生。

例子

在本例中,如果 \"大众test\"大众 变量大于 \"大众1\"大众,则发生 E_USER_WARNING 缺点。
如果发生了

E_USER_WARNING,我们将利用我们的自定义缺点处理程序并结束脚本:

<?php

//error handler function

function customError($errno, $errstr)

{

echo \"大众<b>Error:</b> [$errno] $errstr<br />\"大众;

echo \"大众Ending Script\"大众;

die();

}

//set error handler

set_error_handler(\公众customError\公众,E_USER_WARNING);

//trigger error

$test=2;

if ($test>1)

{

trigger_error(\"大众Value must be 1 or below\"大众,E_USER_WARNING);

}

?>

以上代码的输出该当类似这样:

Error: [512] Value must be 1 or below

Ending Script

现在,我们已经学习了如何创建自己的 error,以及如何惩罚它们,现在我们研究一下缺点

记录。

缺点记录

默认地,根据在 php.ini 中的 error_log 配置,PHP 向做事器的缺点记录系统或文件发送缺点

记录。
通过利用 error_log() 函数,您可以向指定的文件或远程目的地发送缺点记录。

通过电子邮件向您自己发送缺点,是一种得到指定缺点的关照的好办法。

通过 E-Mail 发送缺点

不才面的例子中,如果特定的缺点发生,我们将发送带有缺点的电子邮件,并结束脚本:

<?php

//error handler function

function customError($errno, $errstr)

{

echo \公众<b>Error:</b> [$errno] $errstr<br />\"大众;

echo \公众Webmaster has been notified\"大众;

error_log(\"大众Error: [$errno] $errstr\"大众,1,

\"大众someone@example.com\"大众,\公众From: webmaster@example.com\"大众);

}

//set error handler

set_error_handler(\"大众customError\"大众,E_USER_WARNING);

//trigger error

$test=2;

if ($test>1)

{

trigger_error(\公众Value must be 1 or below\"大众,E_USER_WARNING);

}

?>

以上代码的输出该当类似这样:

Error: [512] Value must be 1 or below

Webmaster has been notified

吸收自以上代码的邮件类似这样:

Error: [512] Value must be 1 or below

这个方法不适宜所有的缺点。
常规缺点应该通过利用默认的 PHP 记录系统在做事器上进行

记录。

PHP 非常处理

非常(Exception)用于在指定的缺点发生时改变脚本的正常流程。

什么是非常?

PHP 5 供应了一种新的面向工具的缺点处理方法。

非常处理用于在指定的缺点(非常)情形发生时改变脚本的正常流程。
这种情形称为非常。

当非常被触发时,常日会发生:

· 当前代码状态被保存

· 代码实行被切换到预定义的非常处理器函数

· 根据情形,处理器大概会从保存的代码状态重新开始实行代码,终止脚本实行,或从

代码中其余的位置连续实行脚本

我们将展示不同的缺点处理方法:

· 非常的基本利用

· 创建自定义的非常处理器

· 多个非常

· 重新抛出非常

· 设置顶层非常处理器

非常的基本利用

当非常被抛出时,其后的代码不会连续实行,PHP 会考试测验查找匹配的 \公众catch\"大众 代码块。

如果非常没有被捕获,而且又没用利用 set_exception_handler() 作相应的处理的话,那么将

发生一个严重的缺点(致命缺点),并且输出 \"大众Uncaught Exception\"大众 (未捕获非常)的缺点


让我们考试测验抛出一个非常,同时不去捕获它:

<?php

//create function with an exception

function checkNum($number)

{

if($number>1)

{

throw new Exception(\公众Value must be 1 or below\"大众);

}

return true;

}

//trigger exception

checkNum(2);

?>

上面的代码会得到类似这样的一个缺点:

Fatal error: Uncaught exception 'Exception'

with message 'Value must be 1 or below' in C:\webfolder\test.php:6

Stack trace: #0 C:\webfolder\test.php(12):

checkNum(28) #1 {main} thrown in C:\webfolder\test.php on line 6

Try, throw 和 catch

要避免上面例子涌现的缺点,我们须要创建适当的代码来处理非常。

处理处理程序应该包括:

1. Try - 利用非常的函数该当位于 \"大众try\"大众 代码块内。
如果没有触发非常,则代码将照常继

续实行。
但是如果非常被触发,会抛出一个非常。

2. Throw - 这里规定如何触发非常。
每一个 \公众throw\"大众 必须对应至少一个 \"大众catch\"大众

3. Catch - \"大众catch\公众 代码块会捕获非常,并创建一个包含非常信息的工具

让我们触发一个非常:

<?php

//创建可抛出一个非常的函数

function checkNum($number)

{

if($number>1)

{

throw new Exception(\"大众Value must be 1 or below\"大众);

}

return true;

}

//在 \"大众try\"大众 代码块中触发非常

try

{

checkNum(2);

//If the exception is thrown, this text will not be shown

echo 'If you see this, the number is 1 or below';

}

//捕获非常

catch(Exception $e)

{

echo 'Message: ' .$e->getMessage();

}

?>

上面代码将得到类似这样一个缺点:

Message: Value must be 1 or below

例子阐明:

上面的代码抛出了一个非常,并捕获了它:

1. 创建 checkNum() 函数。
它检测数字是否大于 1。
如果是,则抛出一个非常。

2. 在 \"大众try\"大众 代码块中调用 checkNum() 函数。

3. checkNum() 函数中的非常被抛出

4. \"大众catch\"大众 代码块吸收到该非常,并创建一个包含非常信息的工具 ($e)。

5. 通过从这个 exception 工具调用 $e->getMessage(),输出来自该非常的缺点

不过,为了遵照“每个 throw 必须对应一个 catch”的原则,可以设置一个顶层的非常处理器

来处理漏掉的缺点。

创建一个自定义的 Exception 类

创建自定义的非常处理程序非常大略。
我们大略地创建了一个专门的类,当 PHP 中发生异

常时,可调用其函数。
该类必须是 exception 类的一个扩展。

这个自定义的 exception 类继续了 PHP 的 exception 类的所有属性,您可向其添加自定义的

函数。

我们开始创建 exception 类:

<?php

class customException extends Exception

{

public function errorMessage()

{

//error message

$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()

.': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';

return $errorMsg;

}

}

$email = \"大众someone@example...com\"大众;

try

{

//check if

if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)

{

//throw exception if email is not valid

throw new customException($email);

}

}

catch (customException $e)

{

//display custom message

echo $e->errorMessage();

}

?>

这个新的类是旧的 exception 类的副本,外加 errorMessage() 函数。
正由于它是旧类的副本,

因此它从旧类继续了属性和方法,我们可以利用 exception 类的方法,比如 getLine() 、

getFile() 以及 getMessage()。

例子阐明:

上面的代码抛出了一个非常,并通过一个自定义的 exception 类来捕获它:

1. customException() 类是作为旧的 exception 类的一个扩展来创建的。
这样它就继续了

旧类的所有属性和方法。

2. 创建 errorMessage() 函数。
如果 e-mail 地址不合法,则该函数返回一条缺点

3. 把 $email 变量设置为不合法的 e-mail 地址字符串

4. 实行 \"大众try\"大众 代码块,由于 e-mail 地址不合法,因此抛出一个非常

5. \公众catch\公众 代码块捕获非常,并显示缺点

多个非常

可以为一段脚本利用多个非常,来检测多种情形。

可以利用多个 if..else 代码块,或一个 switch 代码块,或者嵌套多个非常。
这些非常能够使

用不同的 exception 类,并返回不同的缺点:

<?php

class customException extends Exception

{

public function errorMessage()

{

//error message

$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()

.': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';

return $errorMsg;

}}

$email = \"大众someone@example.com\"大众;

try

{

//check if

if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)

{

//throw exception if email is not valid

throw new customException($email);

}

//check for \公众example\公众 in mail address

if(strpos($email, \"大众example\公众) !== FALSE)

throw new Exception(\公众$email is an example e-mail\"大众);

}

}

catch (customException $e)

{

echo $e->errorMessage();

}

catch(Exception $e)

{

echo $e->getMessage();

}

?>

例子阐明:

上面的代码测试了两种条件,如何任何条件不成立,则抛出一个非常:

1. customException() 类是作为旧的 exception 类的一个扩展来创建的。
这样它就继续了

旧类的所有属性和方法。

2. 创建 errorMessage() 函数。
如果 e-mail 地址不合法,则该函数返回一个缺点。

3. 实行 \"大众try\"大众 代码块,在第一个条件下,不会抛出非常。

4. 由于 e-mail 含有字符串 \"大众example\公众,第二个条件会触发非常。

5. \"大众catch\"大众 代码块会捕获非常,并显示恰当的缺点

如果没有捕获 customException,牢牢捕获了 base exception,则在那里处理非常。

重新抛出非常

有时,当非常被抛出时,您大概希望以不同于标准的办法对它进行处理。
可以在一个

\"大众catch\"大众 代码块中再次抛出非常。

脚本该当对用户隐蔽系统缺点。
对程序员来说,系统缺点大概很主要,但是用户对它们并不

感兴趣。
为了让用户更随意马虎利用,您可以再次抛出带有对用户比较友好的的非常:

<?php

class customException extends Exception

{

public function errorMessage()

{

//error message

$errorMsg = $this->getMessage().' is not a valid E-Mail address.';

return $errorMsg;

}

}

$email = \公众someone@example.com\"大众;

try

{

try

{

//check for \"大众example\公众 in mail address

if(strpos($email, \"大众example\公众) !== FALSE)

{

//throw exception if email is not valid

throw new Exception($email);

}

}

catch(Exception $e)

{

//re-throw exception

throw new customException($email);

}

}

catch (customException $e)

{

//display custom message

echo $e->errorMessage();

}

?>

例子阐明:

上面的代码检测在邮件地址中是否含有字符串 \"大众example\"大众。
如果有,则再次抛出非常:

1. customException() 类是作为旧的 exception 类的一个扩展来创建的。
这样它就继续了

旧类的所有属性和方法。

2. 创建 errorMessage() 函数。
如果 e-mail 地址不合法,则该函数返回一个缺点。

3. 把 $email 变量设置为一个有效的邮件地址,但含有字符串 \"大众example\公众。

4. \公众try\"大众 代码块包含另一个 \公众try\"大众 代码块,这样就可以再次抛出非常。

5. 由于 e-mail 包含字符串 \"大众example\公众,因此触发非常。

6. \"大众catch\"大众 捕获到该非常,并重新抛出 \"大众customException\"大众。

7. 捕获到 \"大众customException\"大众,并显示一条缺点。

如果在其目前的 \"大众try\公众 代码块中非常没有被捕获,则它将在更高层级上查找 catch 代码块。

设置顶层非常处理器 (Top Level Exception Handler)

set_exception_handler() 函数可设置处理所有未捕获非常的用户定义函数。

<?php

function myException($exception)

{

echo \"大众<b>Exception:</b> \"大众 , $exception->getMessage();

}

set_exception_handler('myException');

throw new Exception('Uncaught Exception occurred');

?>

以上代码的输出该当类似这样:

Exception: Uncaught Exception occurred

在上面的代码中,不存在 \公众catch\公众 代码块,而是触发顶层的非常处理程序。
该当利用此函数

来捕获所有未被捕获的非常。

非常的规则

· 须要进行非常处理的代码该当放入 try 代码块内,以便捕获潜在的非常。

· 每个 try 或 throw 代码块必须至少拥有一个对应的 catch 代码块。

· 利用多个 catch 代码块可以捕获不同种类的非常。

· 可以在 try 代码块内的 catch 代码块中再次抛出(re-thrown)非常。

简而言之:如果抛出了非常,就必须捕获它。

标签:

相关文章