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建構函式在類中呼叫另一類的建構函式怎麼會出錯
其實,類和bai函式本質上差不多du。都是將一堆實zhi現某種功能的 段封dao 裝在一內 起。成員屬性其容實就是 變數 只不過這種定義在類裡的 變數 只能給 類 或 類的物件使用。類裡邊的方法和 普通函式 完全一樣,只是普通函式可以直接用 函式名 呼叫,而定義在 類裡 的函式只能被 類的物件 或 ...
php的類裡呼叫另外沒有定義類的php函式,怎麼呼叫
include functions.php class a include包含進來,然後寫函式名呼叫,好純潔的頭像啊,include包含進來也可以把 那就是全域性函式咯,直接名字呼叫就好了 php自定義函式中怎麼呼叫類中方法 class.php class test function.php req...
php中類的使用於作用,PHP中類的使用於作用
類就是很多方法的集合 將他們包進類裡面,可以提升程式的效率,減少 的重複 比如你有一個類檔案 web mon.class.php 裡面有一個類,名為 mon 那麼當你的程式需要用到此類裡的方法時,首先要做的是將類檔案包進來 然後呢,為你的類建立一個物件,也就是把類例項化。未例項化的類是無法使用的,有...