當乙個類例項化乙個物件時,可能會隨著物件初始化一些成員變數,如果賦初值比較多,寫起來就比較麻煩,為此,php引入了魔術方法中的建構函式(方法)__construct,建構函式(方法)是生成物件時自動執行(呼叫)的成員方法,作用就是初始化物件,該方法可以沒有引數也可以有多個引數,格式如下:
基本語法:(推薦php5)
class 類名
}基本語法(php4)
class 類名
}說明:
1、 建構函式(方法)的訪問修飾符預設就是public。如果php4中的建構函式和php5中的建構函式同時存在,那麼php5中的建構函式優先使用;
2、如果沒有定義建構函式(方法),那麼系統會自動的建立乙個空魔術建構函式.一旦定義了乙個建構函式(方法),預設的建構函式會被覆蓋;(自定義了建構函式後,物件的初始化時就不能是$物件名->函式();而是$物件名->函式(引數,引數...);)
3、在乙個類中,建構函式(方法)有且只能有乙個, 如果定義多個,就會報錯,如果在類中,沒有定義建構函式,那麼會有乙個預設的建構函式;
4、建構函式沒有返回值,即沒有return, 就算寫了也沒有用處.
5、在建立乙個類的新物件時,系統會自動的呼叫該類的建構函式(方法)完成對新物件的初始化,不需要手工呼叫;
**示例:
<?php
class person
}$p1=new person("張清",90);
echo "hello-".$p1->name;
$p2=new person("宋江",33);
echo "aa-".$p2->name;
?>
---------- 編譯結果 ----------
我是構造方法hello-張清我是構造方法aa-宋江
偽變數$this的使用注意事項:1、$this在oop中就是偽變數(偽變數不是真正的變數,只是形式上是變數,變數中儲存的是固定的值,$this中並沒有,哪個物件呼叫,$this就代表哪個物件。)
2、$this是指向當前物件的指標,$this表示當前所在類物件這個很不明確,$this取決於自己所在方法被呼叫時的執行環境,當前方法在哪個物件環境下執行,該方法的$this就表示該物件,可以理解為「我自己的」或者「當前物件」
3、$this只能在類的方法中使用,而不能在類的外部使用
php構造方法 函式 基礎
什麼是建構函式呢?在回答這個問題之前,我們來看乙個需求 我們在建立人類的物件時,是先把乙個物件建立好後,再給他的年齡和姓名屬性賦值,如果現在我要求,在建立人類的物件時,就指定這個物件的年齡和姓名,該怎麼做?面試題 這裡可以說成建構函式的作用就是用來完成屬性的初始化 建構函式的基本介紹 基本語法 cl...
PHP基礎知識建構函式
php基礎知識建構函式 created by phpstorm.user administrator date 2016 7 16 0016 time 15 05 header content type text html charset utf 8 class site 析構函式 public f...
php物件導向基礎 建構函式
在上面的列子中,已經體現出類是模板,物件根據模板造出來的例項,但是模板是固定的,因此,導致造出來的物件,各種屬性值都是一樣,這顯然與現實生活中不一樣,每個人都是單獨的個體,都有自己的名字,體重,身高,同乙個模板,想要不同的例項 這就是乙個矛盾,怎麼解決呢?在類中,有乙個建構函式就是用來初始化物件用的...