php子類構造函數
A. php實例化對象的時候,添加一個(false)參數是什麼意思呢
這就看你的Flag類定義的這個參數是什麼意思了,具體得看源碼,例子
<?php
classFlag{
private$param;
function__construct($param=true){
$this->param=$param;
}
functiongetParamTimes(){
return$this->param?$this->param*$this->param:$this->param*2;
//這里就是根據你傳遞的值,給他賦值給屬性,然後再根據屬性,計算不同的結果,所以還是得看實際的邏輯
}
}
B. 在php中,子類extends繼承了父類,當子類和父類同時存在構造函數__construct先執行哪一個呢
1、如果父類和子類中都沒有顯式的定義__construct,在實例化子類對象時,只會隱含的調用子類自己的構造方法。
2、如果父類中有顯式的構造方法__construct,而子類中沒有定義__construct,在實例化子類對象時,就會調用父類中的構造方法。
3、如果父類和子類中都顯式的定義了__construct,在實例化子類對象時,只會調用子類自己的構造方法(這就像是子類重構了父類的構造方法),而如果也想要調用父類的構造方法的話,就需要在子類的__construct 方法中顯式的調用,(如 __construct(){ parent::_construct();})。
(2)php子類構造函數擴展閱讀
子類的構造函數名與子類名相同。
在子類里父類的構造函數不會自動執行。
要在子類里執行父類的構造函數,必須執行類似以下語句:
$this->[父類的構造函數名()]
類的構造函數統一命名為__construct()。
子類的構造函數名也是__construct()(也是廢話)。
在子類里父類的構造函數會不會執行,分兩種情況:
1、如子類不定義構造函數 __construct(),則父類的構造函數默認會被繼承下來,且會自動執行。
2、如子類定義了構造函數 __construct(),因為構造函數名也是__construct(),所以子類的構造函數實際上是覆蓋(override)了父類的構造函數。這時執行的是該子類的構造函數。
這時如果要在子類里執行父類的構造函數,必須執行類似以下語句:parent::__construct();
C. php 構造函數中的變數不能被其他函數使用嗎
test類用extends繼承了tools類,如果tools類裡面有構造方法的話,test是可以用的。tools的私有成員不能使用,其他都可以。至於構造函數,定義js函數有三種方式,有一種可以叫做構造函數方法定義。至於php中,應該沒這說法,在類外面的function叫函數,在類裡面見方法或構造方法。