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樓:萌娘
建構函式不是必須的,當一個類被例項化的時候建構函式(如果有)會被**用,它具體做什答麼視需求而定。
例如,為邊長為4的正方形宣告一個類,那麼它可能不需要建構函式,如class demo 而為正方形宣告一個類的時候,那麼它需要建構函式來指定正方形例項的邊長,如
class demo }你問題中的**不恰當,雖然建構函式中不禁止使用return語句,但是return語句此時沒有任何作用,只會引起誤會。
6樓:匿名使用者
你好,完全可以的.請看下
面**:
class a
}class b
}$a=new b();
php中物件導向中的建構函式的作用是什麼,為什麼需要它。
7樓:匿名使用者
建構函式就是在例項化類的時候就被執行的函式,可以有引數,也可以沒有引數。建構函式主要用來在建立物件時初始化物件 即為物件成員變數賦初始值,比如說你的mypc類,定義了$name,那麼如果沒有建構函式你在初始化mypc類的時候$name的值就是空的,你可以定義一個建構函式來給$name一個值,因為很多時候我們並不允許某些物件變數的值是空的
8樓:匿名使用者
建構函式不是必須的,當一個類被例項化的時候建構函式(如果有)會被呼叫,它具體做什麼視需求而定。
例如,為邊長為4的正方形宣告一個類,那麼它可能不需要建構函式,如class demo
而為正方形宣告一個類的時候,那麼它需要建構函式來指定正方形例項的邊長,如
class demo
}你問題中的**不恰當,雖然建構函式中不禁止使用return語句,但是return語句此時沒有任何作用,只會引起誤會。
9樓:匿名使用者
php4以前的版本中,類的建構函式即是類的同名函式,而到了php5類的建構函式多了一個__construct魔法函式,
__construct() 是php內建的建構函式, 是同php 解析引擎自動呼叫的, 當例項化一個物件的時候,這個物件的這個方法首先被呼叫。
php構造方法能不能進行自身呼叫(__construct()),幫忙解決一下,謝謝
10樓:
__construct()可以自己另行呼叫的!
$obj = new class(1);
$obj->__construct(1);
允許這樣用
額,題目沒看清楚
不過建構函式內呼叫它本身也是可以的!
比如<?php
class test}}
$obj = new test(8);
echo $obj->value;
?>
11樓:匿名使用者
好像不能主動呼叫建構函式,可以另寫一個處理函式,在這個處理函式裡遞迴呼叫自身,處理資料,再在建構函式裡呼叫這個處理函式
php中建構函式與自定義函式區別
12樓:匿名使用者
構造方法:使用者建立物件時,系統自動呼叫的方法;
功能:初始化類中必備資料的;
php5實現方法:
1)方法名和類名相同的方法
2)php中設定的魔術方法(使用者執行了某種操作後,系統自動呼叫的方法):
__construct();
注意:1】如果沒有定義構造方法,那麼系統會自動的建立一個空魔術構造方法;
2】如果php4中的構造方法和php5中的構造方法,同時存在,那麼php5中的構造方法優先使用;普通的成員方法和構造方法的區別和聯絡:
1】普通的方法如果定義的名字和類名相同,那麼就變成構造方法
2】如果構造方法中有引數,那麼引數列表要和建立物件時,類名後的小括號引數類表完全一樣;
3】普通的方法主要是為了完成某個功能,而構造方法主要是初始化資料
4】普通的方法的可以有返回值,但是構造方法從語法上可以有返回值,但是從意義上不能有返回值;
13樓:匿名使用者
建構函式:用來實現對一個類的構造,例如一個類裡//無參的public function __construct()
//有引數的public function __construct($name,$pass)
自定義函式:跟構造方法有很大差比,自定義函式可以寫自己的方法和js的函式很像,例如:function 函式名(){ }
關於php抽象類的構造方法問題
14樓:匿名使用者
知道什麼是繼承嗎?子類繼承了父類,那麼當然構造方法也繼承了,當例項化一個類的時候,首先會呼叫這個類的構造方法,如果沒有找到,則會去呼叫父類的構造方法;
如果子類有構造方法,為什麼還要去呼叫父類的呢?
15樓:匿名使用者
你既然都知道了abstract類不能定義函式體。那麼你就應該曉得abstract類只能用作其它派生類的基類,而不能生成抽象物件,所以也就不能例項化了啊!
php 什麼是建構函式
16樓:【血衣亭
魔術方法之一,在某種特定條件下會自動觸發的方法,也可以叫函式,建構函式,在類被例項化成物件時,會自動呼叫的函式(方法),不需要你手動呼叫。
一般做物件的初始化,資料的初始化,基於同一個類的每個物件都有相同的屬性跟方法,
但是到具體的值是不一樣的,例如: 人都有名字,但是名字會不一樣,所以需要做初始化。
<?php
class person
public function getname()}$p1=new person('天');
echo $p1->getname();
17樓:匿名使用者
建構函式 ,是一種特殊的方法。主要用來在建立物件時初始化物件, 即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中。特別的一個類可以有多個建構函式 ,可根據其引數個數的不同或引數型別的不同來區分它們 即建構函式的過載。
例如:<?php
classauto_cartextendscart}?>
上文定義了一個 auto_cart 類,即 cart 類加上一個建構函式,當每次使用“new”建立一個新的 auto_cart 類例項時,建構函式將自動呼叫並將一件商品的數目初始化為“10”。建構函式可以使用引數,而且這些引數可以是可選的,它們可以使建構函式更加有用。為了依然可以不帶引數地使用類,所有建構函式的引數應該提供預設值,使其可選。
更多問題到問題求助專區(http://bbs.houdunwang.com/)
php例項化類使用類中方法如何輸出方法裡的變數
方法一 class a 呼叫 c new a c a1 echo c b1 說明,類中或者說方法中,在通常下,是區域性變數,而非全域性變數!要直接輸出 echo b1 的話,你就要把變數弄成全域性變數,或者使用引用,不過引用這種方法,在php高版本中好像已經不支援,所以不推薦。方法二 class a...
php類方法中引數問題引數怎麼是類名加上變
是宣告這個變數,是 這個類 的型別。例如 funciton getstudentname student stu 這個例子中,就是你問問題的例子,說的是 獲取學生姓名,這個引數中,宣告 變數 stu 是student類,其實這個時候 stu是物件,而不是變數。返回學生的姓名。你的問題應該是沒有理解方...
php中list 函式的用法,PHP中list 函式的用法?
list key,value 和each 一起使用是將陣列當前指標所指向單元的鍵 值對分別賦值給變數 key,value 注意 是當前單元的噢!下面說說 list 的功能和作用 在老版本的php中list 是和each 一起用來遍歷陣列的,但是在現在流行php5中已經被foreach array a...