PHP類的構造方法,PHP中物件導向中的建構函式的作用是什麼,為什麼需要它。

時間 2021-08-14 20:33:09

1樓:文件類共創空間

構造方法是類中的一個特殊方法。當使用 new 操作符建立一個類的例項時,構造方法將會自動呼叫,其名稱必須是 __construct() 。所以通常用它執行一些有用的初始化任務。

該方法無返回值。

如果子類中定義了建構函式則不會暗中呼叫其父類的建構函式。要執行父類的建構函式,需要在子類的建構函式中呼叫 parent::__construct()。

與構造方法對應的就是析構方法,析構方法會在某個物件的所有引用都被刪除或者當物件被顯式銷燬之前執行的一些操作或者功能。解構函式不能帶有任何引數,其名稱必須是 __destruct() 。

同樣,如果子類中定義了解構函式則不會暗中呼叫其父類的解構函式。要執行父類的解構函式,需要在子類的解構函式中呼叫 parent::__destruct()。

注意:在解構函式中丟擲一個異常會導致致命錯誤。

<?php

class construct

function __destruct()

}class son extends construct

function show()

function __destruct()

}$test=new son(12); //例項化物件

$test->show(); //abc的乘積是:720 恢復乘積的初始值:0

?>

2樓:匿名使用者

建構函式前面是兩條下劃線

3樓:匿名使用者

construct前面是雙下劃線

4樓:騎著小豬過馬路

__construct 魔術方法是兩個下劃線.

php中建構函式可以例項化一個物件嗎

5樓:匿名使用者

你好,完全可以的.請看下

面**:

class a

}class b

}$a=new b();

php中物件導向中的建構函式的作用是什麼,為什麼需要它。

6樓:匿名使用者

建構函式就是在例項化類的時候就被執行的函式,可以有引數,也可以沒有引數。建構函式主要用來在建立物件時初始化物件 即為物件成員變數賦初始值,比如說你的mypc類,定義了$name,那麼如果沒有建構函式你在初始化mypc類的時候$name的值就是空的,你可以定義一個建構函式來給$name一個值,因為很多時候我們並不允許某些物件變數的值是空的

7樓:匿名使用者

建構函式不是必須的,當一個類被例項化的時候建構函式(如果有)會被呼叫,它具體做什麼視需求而定。

例如,為邊長為4的正方形宣告一個類,那麼它可能不需要建構函式,如class demo

而為正方形宣告一個類的時候,那麼它需要建構函式來指定正方形例項的邊長,如

class demo

}你問題中的**不恰當,雖然建構函式中不禁止使用return語句,但是return語句此時沒有任何作用,只會引起誤會。

8樓:匿名使用者

php4以前的版本中,類的建構函式即是類的同名函式,而到了php5類的建構函式多了一個__construct魔法函式,

__construct() 是php內建的建構函式, 是同php 解析引擎自動呼叫的, 當例項化一個物件的時候,這個物件的這個方法首先被呼叫。

關於php抽象類的構造方法問題

9樓:匿名使用者

知道什麼是繼承嗎?子類繼承了父類,那麼當然構造方法也繼承了,當例項化一個類的時候,首先會呼叫這個類的構造方法,如果沒有找到,則會去呼叫父類的構造方法;

如果子類有構造方法,為什麼還要去呼叫父類的呢?

10樓:匿名使用者

你既然都知道了abstract類不能定義函式體。那麼你就應該曉得abstract類只能用作其它派生類的基類,而不能生成抽象物件,所以也就不能例項化了啊!

php類中定義了函式怎麼使用它,php類中定義了一個函式,怎麼使用它?

峰迴路轉 php類中定義的函式有幾種,例如 class a 受保護的方法 protected function test2 靜態方法 static function st 私有方法 private function test3 內部訪問 public function use 外部呼叫方法 a ne...

php如何在類中呼叫另檔案的類,PHP如何在類中呼叫另一個檔案的類

你的這種定義方法是錯誤的,在類定義中不能直接包含檔案或例項化物件,只能對類中屬性進行定義 請參考天南 46926125 寫的demo php demo code class b function d obj new b obj d day忘不掉的痛 在a類中 把 a 定義為公有的成員屬性。class...

php中怎麼類外訪問私有方法

你問的是私有方法還是私有屬性?你說的 get set 是訪問和設定屬性用的。call才是訪問方法用的。但這兩種都需要修改原始類,既然有這個許可權了,那私有方法有什麼必要定義呢?另外一種獲取私有屬性或呼叫私有方法的思路是通過反射 myclass這個類中包含了一個名為myfun的私有方法 class m...