學習php面向對象知識小結(對象的建立,構建函數以及析構函數的使用)

學習php面向對象知識小結

1、類的建立

1. 類的定義以class關鍵字開始,後面跟着這個類的名稱。類的名稱命名一般每一個單詞的第一個字母大寫。
2. 定義類的屬性
3. 定義類的方法php

class NbaPlayer
{
    // 類的屬性的定義
    public $name="小明";
    public $age="18";

    // 類的方法的定義
    public function sayName() {
        echo $this->name."\n";
    }

    public function sayAge(){
        echo $this->age."\n";
    }
}

4. 實例化類的對象
5. 使用對象的屬性和方法函數

//1. 類實例化爲對象時使用new關鍵字,new以後緊跟類的名稱和一對括號。
// 2. 使用對象能夠像使用其餘值同樣進行賦值操做

$xiaoming = new Person();
// 訪問對象的屬性使用的語法是->符號,後面跟着屬性的名稱
echo '屬性調用:'."\n";
echo $xiaoming->name."\n";
// 調用對象的某個方法使用的語法是->符號,後面跟着方法的名稱和一對括號
echo '方法調用:'."\n";
$xiaoming->sayName();
$xiaoming->sayAge();

咱們運行一下這個代碼 (經過命令行的形式)學習

 

咱們成功使用類實例化了一個對象this

2、 構造函數與構造函數

 默認的構造函數,在對象被實例化的時候自動調用spa

 

<?php
date_default_timezone_set("PRC");

class Person
{
    // 類的屬性的定義
    public $name = "小明";
    public $age = "18";

    //構造函數的使用
    function __construct($name, $age)
    {
        $this->name = $name; // $this是php裏面的僞變量,表示對象自身
        $this->age = $age;
    }

    // 類的方法的定義
    public function sayName()
    {
        echo $this->name . "\n";
    }

    public function sayAge()
    {
        echo $this->age . "\n";
    }
}


$aym = new Person('aym','20');

$aym->sayName();
$aym->sayAge();

運行效果命令行

 

 

 能夠看到咱們已經成功初始化了咱們想要的結果code

咱們並無直接去調用這個function __construct()函數,而是在咱們在對象被實例化的時候自動調用對象

析構函數的使用析構函數,用於清理程序中使用的系統資源,好比釋放打開的文件等等blog

析構函數在該對象不會再被使用的狀況下自動調用生命週期

析構函數(destructor) 與構造函數相反,當對象結束其生命週期時(例如對象所在的函數已調用完畢),系統自動執行析構函數。析構函數每每用來作"清理善後" 的工做(例如在創建對象時用new開闢了一片內存空間,應在退出前在析構函數中用delete釋放)

<?php
date_default_timezone_set("PRC");

class Person
{
    // 類的屬性的定義
    public $name = "小明";
    public $age = "18";

    //構造函數的使用
    function __construct($name, $age)
    {
        $this->name = $name; // $this是php裏面的僞變量,表示對象自身
        $this->age = $age;
    }

    //析構函數的使用
    function __destruct()
    {
        echo "Destroying " . $this->name . "\n";
    }

    //類的方法的定義
    public function sayName()
    {
        echo $this->name . "\n";
    }

    public function sayAge()
    {
        echo $this->age . "\n";
    }
}

$aym = new Person('aym', '20');
$tom = new Person('tom', '18');
$aym->sayName();
$tom->sayName();

$tom = null;
echo '---分界---'."\n";

echo '程序執行完了' . "\n";
在咱們的代碼都執行完成夠,系統會幫咱們調用對象的function __destroy()函數

當對象變量被賦值爲Null的時候,對象的析構函數會被自動調用,同一個類的其餘對象不受影響
相關文章
相關標籤/搜索