1. 關於php構造函數
用於類的初始化,在新建一個對象時被立即執行,既
new base();
此時會執行__construct()
$this是指類(實例)自身
2. php 構造函數格式,具體該怎麼寫應該注意什麼呢
在PHP里,如果你沒有手寫構造函數,則php在實例化這個對象的時候,會自動為類成員以及類方法進行初始化,分配內存等工作,但是有些時候不能滿足我們的要求,比如我們要在對象實例化的時候傳遞參數,那麼就需要手動編寫構造函數了,手寫構造函數有兩種寫法,只是表現形式不同,其實本質一樣
class test
{
function __construct()
{
//your code
}
}
class test
{
function test()//如果方法名跟類名字一樣,將被認為是構造函數
{
//your code
}
}
以上為兩種基本形式
我剛才說的傳遞參數進行實例化的例子,簡單的寫一個參考
class test
{
public $test = '';
function __construct($input = '')
{
$this->test = $input;
}
function getTest()
{
return $this->test;
}
}
$a = new test('a test');
echo $a->getTest()//將輸出 a test
$b = new test();
echo $a->getTest()//沒有任何輸出(其實是有輸出,但是輸出為空)
3. PHP構造函數傳遞值的問題
__construct($hostname)裡面的參數是構造函數的參數,只能在構造函數內部調用,
public $hostname;這是類的參數,整個類內部包括繼承類都可以調用
第二種的參數只能在構造函數中使用,而第一種,則將傳來的參數賦值給類的變數,所以第一種的hostname整個類內部的方法都可以使用$this->hostname來調用