大多數類都有一種稱為構造函數的特殊方法,當創建一個對象時,它將自動調用構造函 數,也就是使用new 這個關鍵字來實例化對象的時候自動調用構造方法.
構造函數的聲明與其它操作的聲明一樣,只是其名稱必須是__construct( ),這是PHP5 中 的變化,以前的版本中,構造函數的名稱必須與類名相同,這種在PHP5 中仍然可以用,但 現在以經很少有人用了,這樣做的好處是可以使構造函數獨立於類名,當類名發生改變時不 需要改相應的構造函數名稱了,為了向下兼容,如果一個類中沒有名為__construct( )的方法,PHP 將搜索一個PHP4 中的寫法,與類名相同名的構造方法.
格式:function __construct ( [參數] ) { ... ... }
在一個類中只能聲明一個構造方法,而是只有在每次創建對象的時候都會去調用一次構 造方法,不能主動的調用這個方法,所以通常用它執行一些有用的初始化任務,比如對成屬 性在創建對象的時候賦初值.
PHP實例代碼如下:
- <?PHP
- /*
- * 1.對象中成員的訪問(在一個對象的內部方法中,去訪問本對軒昂中的其他方法和成員屬性)
- * 2.在對象中的方法中都默認有一個$this關鍵字,這個關鍵字代表調用這個方法的對象
- *
- * 構造方法
- *
- * 1.是對象創建完成後,“第一個”“自動調用”的方法
- *
- * 2.構造方法的定義,方法名是一個固定的,
- * 在PHP4中:和類名相同的方法就是構造方法
- * 在PHP5中:構造方法選擇使用 魔術方法__construct() 所有類中聲明構造方法都使用這個名稱
- * 優點:在改變類名時,構造方法不用改變
- * 魔術方法: 在類中寫出了某個魔術方法,這個方法對應的功能就會添加上
- * 方法名稱都是固定的(都是系統提供好的),沒有自己定義的
- * 每一個魔術方法,都是在不同時刻為了完成某一功能自動調用的方法
- * 不同的魔術方法有不同的調用時機
- * 都是以 __ 開頭的方法
- * __construct(); __destruct(); __set();......
- *
- * 作用:為成員屬性初始化;
- *
- *
- * 析構方法
- *
- * 1.當對象被釋放之前最後一個“自動”調用的方法
- * 使用垃圾回收器(Java PHP),而c++手動 的釋放
- *
- * 作用:關閉一些資源,作一些清理的工作
- *
- * __destruct();
- *
- */
- class Person{
- var $name;
- var $age;
- var $sex;
- //PHP4中的構造方法
- /*function Person()
- {
- //每聲明一個對象都會調用
- echo "1111111111111111";
- }*/
- //PHP5中的構造方法
- function __construct($name,$age,$sex){
- $this->name=$name;
- $this->age=$age;
- $this->sex=$sex;
- }
- function say(){
- //$this->name;//對象中成員的訪問使用$this
- echo "我的名字:{$this->name},我的年齡:{$this->age}<br>"
- }
- function run(){
- }
- function eat(){
- }
- //析構方法
- function __destruct(){
- }
- }
- $p1=new Person("zhangsan",25,"男");
- $p2=new Person;
- $p3=new Person;
- ?>