<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      第1次親密接觸PHP5(2)

      [摘要]接上篇,繼續硬著頭皮往下翻。。。。:)類型指示 在PHP5,你可以在一個類的方法中指明其參數必須為一個類的實例:Example 10: 類型實例<?phpclass foo // code ...class bar public function process_a_foo(foo ...

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

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

      Example 10: 類型實例

      <?php
      class 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: 類變量和類方法


      <?php
      class 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: 異常處理

      <?php
      class 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 "\n<br />\n";
          // Some catastrophic measure here
      }
      ?>


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

      自定義異常處理

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

      Example 13: 自定義異常類

      <?php
      class 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: 名稱空間

      <?php
      namespace Math {

        class Complex {
          //...code...
          function __construct() {
            print("hey");
          }
        }
      }

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

      注:在實際應用中,你可以在不同的名稱空間里定義同名的類來完成不同的任務(但接口要相同)
      <翻譯完畢>



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




      日韩精品一区二区三区高清