php學習八:封裝

來源:互聯網
上載者:User

標籤:bsp   include   sel   解構函式   strong   地址   影響   ons   封裝   

一:在php中,用class關鍵字來建立一個類,即進行封裝;在類裡面有成員屬性和方法行為組成:

1.成員屬性:用關鍵字var來聲明,可以給初始值也可以不給;現在var廢棄,用public來聲明,public為共有屬性,在任何地方都可以訪問

 /*名稱*/    public $name = "房明";    /*學號*/    public $no;    /*成績*/    public $score;

  

2.行為方法:和js中的函數類似,一般用public來聲明

 /*唱歌*/    public function sing($songName)    {        echo "學生會唱{$songName}歌";    }    /*跑步*/    public function run()    {        return "學生去跑步了";    }

  

特別注意:在類裡面調用自己的屬性和方法的時候,用到"$this->..."

 public function showSelf(){        echo "我叫{$this->name},我的學號是{$this->no},我考了{$this->score}分,{$this->run()}";    }

  

二:new關鍵字執行個體化對象

要想操作類裡面的屬性和方法,必須要執行個體化一個對象;

每一個對象都是獨立的,通過對象改變屬性只能改變自己記憶體空間的資料,互不影響;

通過"->"來訪問類裡面的屬性和方法,類似於c中的指標,通過"="進行賦值;

$student1 = new Student1(); //建立記憶體空間,然後把地址傳遞給對象$student1->name = "張三"; //通過"->"來訪問類裡面的屬性和方法,類似於c中的指標,通過"="進行賦值$student1->no = "1001";$student1->score = "100";$student1->showSelf();

  

三:引用外部類:

引用外部類:include,required;前者在錯誤時會出現一個警告,後者會出現一個致命的錯誤

在不確定外部類是不是用了一次的情況下,為了避免出現衝突,可以用include_once或者required_once

 

代碼:我單獨建了一個Student類,頁面代碼如下:

class Student{    public $name;    public $age;}

  然後我想在main頁面用這個類,那麼在main頁面需要的代碼如下:

include_once "Student.class.php";$student = new Student();

  

四:建構函式和解析函數

建構函式:__construct()初始化參數,當執行個體化類的時候會調用這個函數,屬於魔術方法,前面是兩個底線;

解構函式:__destruct(),當記憶體被回收的時候調用這個函數;

 

代碼:

class Student{    public $name;    public $age;    /*************建構函式:__construct()初始化參數******************/    public function __construct($name,$age){        $this->name = $name;        $this->age = $age;    }    public function show(){        echo $this->name."今年".$this->age."歲了";    }    /************解構函式:******************/    public function __destruct()    {        echo $this->name."記憶體被回收";    }}$student = new Student("房明","18");$student->show();  //此時列印的結果為:房明今年18歲了

  

 

php學習八:封裝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.