類的基礎定義和概念(擴充1)

來源:互聯網
上載者:User
目錄Table Of Contents

關於構造方法

任何給定的參數都會被傳遞到構造方法

class ShopProduct{  function __construct($title,$firstName,$mainName){ // 構造參數的特殊文法__construct  }}$product1 = new ShopProduct('this is title','Peter','Peter Yuan'); //這裡就是傳入的參數,這裡傳入到類裡面,也會直接傳入到構造方法裡面,參數按順序排列

構造方法會在類被建立的時候自動執行

關於一些提醒

因為php是弱類型的語言,所以在變數聲明的時候不需要指定資料類型,這樣造就了方便,但是也帶來了一點安全問題,所以需要增加一些措施1.必要時增加一些類型判斷,例如is_bool()判斷是否布爾值,返回true false

      function outputAddresses($resolve){        if(! is_boll ($resolve)){          XXXXXXXXXXXXXX        }      }

2.添加註釋例如這種:

      /**       * Determine if the given abstract type has been bound.       *       * @param  string  $abstract   //宣布傳入的參數類型       * @return bool  //宣布返回的值       */      public function bound($abstract)      {          $abstract = $this->normalize($abstract);          return isset($this->bindings[$abstract]) || isset($this->instances[$abstract]) || $this->isAlias($abstract);      }

在物件導向開發中,“專註特定任務,忽略外界上下文”是一個很重要的設計原則。(個人理解就是專項專做,特例特行,方法和類都只需要專註於自己的任務,這樣能夠很好避免出錯。)

你需要在檢測類型,轉換類型,依賴娘蒿清晰的文檔之間仔細權衡。(但無論決定用哪一種,都應該提供文檔)

我們不能依靠編譯器來防止類型相關的bug,必須考慮到當非法資料類型的參數傳遞給方法時,會產生怎樣的後果,我們不能完全相信用戶端程式員,應該始終考慮如何在方法中處理他們引入的無用的資訊。

關於類型提示(type hint)

  1. 類型提示可以檢測使用參數的類型
  2. 方法的定義更加清晰,更容易知道傳入的參數類型
    沒有類型提示的時候    class ShopProduct{    }    class ShopProductWriter{      public function write($shopProduct){      }    }    $product1 = new ShopProduct();    $writer = new ShopProductWriter();    $writer->write($product1);    有類型提示的時候      public function write( ShopProduct $shopProduct){  //指定了ShopProduct的對象才能傳入,這個就是類型提示      }      ......      在使用的時候      $writer->write($product1); //這樣直接傳入的時候代碼能夠自動檢測到,如果不是ShopProduct對象的話,會出現報錯的
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.