首頁  >  文章  >  後端開發  >  第1次親密接觸PHP5(2)_PHP教程

第1次親密接觸PHP5(2)_PHP教程

WBOY
WBOY原創
2016-07-21 16:10:12921瀏覽


接著上篇,繼續硬著頭皮往下翻。 。 。 。 :)
類型指示

在PHP5,你可以在一個類別的方法中指明其參數必須為一個類別的實例:

Example 10: 類型實例

? 🎜>class foo {
  // code ...
}

class bar {
  public function process_a_foo(foo $ oo) {

}

$b = new bar();
$f = new foo();
$b->process_a_foo($f);
?>

可以看到,在變數前指定一個類別名,讓PHP5知道這個變數將會是一個類別的實例

靜態成員

靜態成員和靜態方法在OOP中一般稱為"類變數"和"類方法"。

一個"類別方法"可以在物件沒有被實例化的時候呼叫
一個"類別變數"可以在物件沒有被實例化的時候存取(也不需要物件的方法來呼叫)

Example 11: 類別變數與類別方法


class calculator {
  static public $pi = 3.14151692;    return $x $y;
  }
}

$s = calculator::$pi;
$result = calculator add(3,7);
print("$result");
?>

* 異常處理

異常處理是開發語言中公認的處理異常錯誤的方法,如在JAVA和C 中。
PHP5用"try"和"catch"關鍵字來捕捉異常。

Example 12: 異常處理

class foo {

  function divide($x,$y) { =0) throw new Exception("cannot divide by zero");
    return $x/$y;
  }
}

$x = new f}
}

$x = new foo();try {
  $x->divide(3,0);   
} catch (Exception $e) {
    echo $e->getMessage()
    echo $e->getMessage()
    echo $e->getMessage()
    />n";
    // Some catastrophic measure here
}
?>


可以看出,"try"表示的是執行程式碼的地方,當有錯誤的時候執行"catch"區域的程式碼。
在"catch"區域你應當指明執行異常的對象,這樣可以使我們的結構更清晰

自訂異常處理

你可以在程式中定義自己習慣的捕捉異常錯誤的程式碼。
非常簡單,你只需要繼承一個異常類,在這個類別中需要一個建構器和一個叫getMessage的方法而已:

Example 13: 自訂異常類別

class WeirdProblem extends Exception {

   private $data;

   functionWeirdProblem($data) {
   function WeirdProblem($data) {
   function WeirdProblem($數據) {
        $this-> data = $data;
    }

    function getMessage() {
        return $this->data . "? >

現在就可以用"throw new WeirdProblem($foo) "來拋出例外。如果在try{}這樣的區域出現異常,PHP5就會跳入
catch區域來拋出異常。

名稱空間

"名稱空間"可以讓你方便地呼叫一組類別或方法:

Example 14: 名稱空間

namespace Math {

  class Complex {
    //...code...
    function __construct() {
   }

$m = new Math::Complex();
?>

註:在實際應用中,你可以在不同的名稱空間裡定義同名的類別來完成不同的任務(但介面要相同)




終天蹩腳地翻譯完了,有些翻譯不正確的地方,如術語、對原文的理解,請一一指出,共同完善,共同開始PHP5的學習、探討。 。 。





http://www.bkjia.com/PHPjc/314327.html

www.bkjia.com

true

TechArticle接上篇,繼續硬著頭皮往下翻。 。 。 。 :) 類型指示 在PHP5,你可以在一個類別的方法中指明其參數必須為一個類別的實例: Example 10: 類型實例...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn