:::

1-5-4 PHP簡易的物件導向觀念

您沒有觀看影片的權限

您沒有觀看影片的權限

請先登入,登入後,確認您的權限後,即可觀看影片。

  1. 這是一個名為 box 的類別:
    class box
    {
        
    }
    
    $box1 = new box();
    $box2 = new box;

     

  2. new實例化後, $box1$box2 就是物件
  3. $color$size 為公開成員屬性;__construct() 為建構式,實例化時會同時執行;render() 為公開成員方法
    class box
    {
        public $color;
        public $size = 100;
    
        public function __construct($size, $color = 'blue')
        {
            $this->size = $size;
            $this->color = $color;
        }
    
        public function render()
        {
            return "<p style='width: {$this->size}px; height: {$this->size}px; background: {$this->color};'></p>";
        }
    }
    
    $box1 = new box(80, 'red');
    echo $box1->render();
    
    $box2 = new box(120);
    echo $box2->render();

     

  4. 在類別內部呼叫成員屬性用 $this->屬性,呼叫成員方法用 $this->方法()
  5. 在物件中主要定義成員有三種(可用在成員屬性或成員方法):
    1. public(公開成員):不論在物件本體,或是外部程式,都可以使接使用。
    2. private(私有成員):僅在該物件本體可以使用,外部程式或繼承於本物件之子類別無法使用。
    3. protected(保護成員):僅外部程式無法叫用,但物件本體及繼承的子類別均可使用。
  6. 靜態方法的用法,產出的內容會和之前的一樣
    class box
    {
        public static function mybox($size = 100, $color = 'blue')
        {
            return "<p style='width: {$size}px; height: {$size}px; background: {$color};'></p>";
        }
    }
    
    echo box::mybox(80, 'red');
    echo box::mybox(120);
    

     

  7. 並沒有哪一種方法特別好,而是看使用需求來選擇要用一般的實例化方式,還是用靜態方法。
  8. 至於那些繼承、介面...等有的沒的用法,因為暫時用不到,所以等用得到時再來說吧。

:::

搜尋

QR Code 區塊

https%3A%2F%2Fwww.tad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D48%26tbdsn%3D1600

書籍目錄

展開 | 闔起

線上使用者

46人線上 (14人在瀏覽線上書籍)

會員: 0

訪客: 46

更多…