第1次亲密接触PHP5(2)
author:一佰互联 2019-05-01   click:141
接上篇,继续硬着头皮往下翻。。。。:)类型指示 在PHP5,你可以在一个类的方法中指明其参数必须为一个类的实例:Example 10: 类型实例<?phpclass foo {  // code ...}class bar {  public function process_a_foo(foo $foo) {   // Some code  }}$b = new bar();$f = new foo();$b->process_a_foo($f);?>可以看到,在变量前指定一个类名,让PHP5知道这个变量将是一个类的实例静态成员 静态成员和静态方法在OOP中一般称为"类变量"和"类方法"。一个"类方法"可以在对象没有被实例化的时候调用一个"类变量"可以在对象没有被实例化的时候访问(也不需要对象的方法来调用)Example 11: 类变量和类方法<?phpclass calculator {  static public $pi = 3.14151692;  static public function add($x,$y) {    return $x + $y;  }}$s = calculator::$pi;$result = calculator::add(3,7);print("$result");?>* 异常处理异常处理是开发语言中公认的处理异常错误的方法,如在JAVA和C++中。PHP5用"try"和"catch"关键字来捕获异常。Example 12: 异常处理<?phpclass foo {  function divide($x,$y) {    if($y==0) throw new Exception("cannot divide by zero");    return $x/$y;  }}$x = new foo();try {  $x->divide(3,0);   } catch (Exception $e) {    echo $e->getMessage();    echo "<br />";    // Some catastrophic measure here}?>可以看出,"try"表示的是执行代码的地方,当有错误的时候执行"catch"区域的代码。在"catch"区域你应当指明执行异常的对象,这样可以使我们的结构更清晰自定义异常处理 你可以在程序中定义自己习惯的捕获异常错误的代码。非常简单,你仅仅需要继承一个异常类,在这个类中需要一个构造器和一个叫getMessage的方法而已:Example 13: 自定义异常类<?phpclass WeirdProblem extends Exception {   private $data;   function WeirdProblem($data) {        parent::exception();        $this->data = $data;    }    function getMessage() {        return $this->data . " caused a weird exception!";    }}?>现在就可以用"throw new WeirdProblem($foo) "来抛出异常。如果在try{}这样的区域中出现异常,PHP5就会跳入catch区域来抛出异常。名称空间 "名称空间"可以让你方便地调用一组类或方法:Example 14: 名称空间 <?phpnamespace Math {  class Complex {    //...code...    function __construct() {      print("hey");    }  }}$m = new Math::Complex();?>注:在实际应用中,你可以在不同的名称空间里定义同名的类来完成不同的任务(但接口要相同)<翻译完毕>终天蹩手蹩脚地翻译完了,有些翻译不正确的地方,如术语、对原文的理解,敬请一一指出,共同完善,共同开始PHP5的学习、探讨。。。