PHP 百分网手机站

php高级教程(2)

时间:2018-04-26 08:56:07 PHP 我要投稿

php高级教程

  class customException extends Exception

  {

  public function errorMessage()

  {

  //error message

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

  .': '.$this->getMessage().' 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();

  }

  ?>

  重新抛出异常

  有时,当异常被抛出时,您也许希望以不同于标准的方式对它进行处理。可以在一个 "catch" 代码块中再次抛出异常。

  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); //抛出Exception异常

  }

  }

  catch(Exception $e) //捕获Exception异常

  {

  //re-throw exception

  throw new customException($email); //抛出customException异常

  }

  }

  catch (customException $e) //捕获customException异常

  {

  //display custom message

  echo $e->errorMessage();

  }

  ?>

  设置顶层异常处理器 (Top LevelException Handler)

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

  function myException($exception)

  {

  echo "Exception: " , $exception->getMessage();

  }

  set_exception_handler('myException');

  throw new Exception('Uncaught Exception occurred');

  ?>

  在上面的代码中,不存在 "catch" 代码块,而是触发顶层的异常处理程序。应该使用此函数来捕获所有未被捕获的异常。

  异常的规则

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

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

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

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

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

  七、PHP Include 文件

  服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。

  PHP include 和 require 语句

  通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。

  include 和 require 语句是相同的,除了错误处理方面:

  ·require 会生成致命错误(E_COMPILE_ERROR)并停止脚本

  ·include 只生成警告(E_WARNING),并且脚本会继续

  语法

  include 'filename';

  或

  require 'filename';

  PHP include 实例

  例子 1

  假设我们有一个名为 "footer.php" 的标准的页脚文件,就像这样:

  echo "

  Copyright ? 2006-" . date("Y") . " W3School.com.cn

  ";

  ?>

  如需在一张页面中引用这个页脚文件,请使用 include 语句:

  欢迎访问我们的首页!

  一段文本。

  一段文本。

  例子 2

  假设我们有一个名为 "menu.php" 的标准菜单文件:

  echo '首页 -

  HTML 教程 -

  CSS教程 -

  JavaScript 教程 -

  PHP 教程';

  ?>

  网站中的所有页面均使用此菜单文件。具体的做法是(我们使用了一个

  元素,这样今后就可以轻松地通过 CSS 设置样式):

  欢迎访问我的首页!

  Some text.

  Some more text.

  例子 3

  假设我们有一个名为 "vars.php" 的文件,其中定义了一些变量:

  $color='银色的';

  $car='奔驰轿车';

  ?>

  然后,如果我们引用这个 "vars.php" 文件,就可以在调用文件中使用这些变量:

  欢迎访问我的首页!

  include 'vars.php';

  echo "我有一辆" . $color . $car "。";

  ?>

  PHP include vs. require

  require 语句同样用于向 PHP 代码中引用文件。

  不过,include与 require 有一个巨大的差异:如果用 include 语句引用某个文件并且 PHP无法找到它,脚本会继续执行:

  如果我们使用 require 语句完成相同的案例,echo 语句不会继续执行,因为在 require 语句返回严重错误之后脚本就会终止执行:

  注释:

  请在此时使用 require:当文件被应用程序请求时。

  请在此时使用 include:当文件不是必需的,且应用程序在文件未找到时应该继续运行时。

【php高级教程】相关文章:

1.PHP 学习教程

2.PHP入门教程

3.php的基础教程

4.PHP高级语法归纳2017

5.PHP入门基础教程大全

6.php内置变量的操作教程

7.APMServ搭建PHP环境教程

8.php教程八大章