1. 程式人生 > >php的一些理解(物件與類的概念以及相互關係理解)

php的一些理解(物件與類的概念以及相互關係理解)

先來看一段簡單的程式碼:

<?php

class Person{

    public $name;
    public $age;
    public $sex;

    public function who()
    {
        echo $this->name." is ".$this->age." years old and is my ".$this->sex;
    }

}

class man{
    public $height;
    public $where;

    public function __construct($h,$w){
        $this->height = $h;
        $this->where = $w;
    }
}

$luyaran = new Person();
$luyaran->name = "luyaran";
$luyaran->age = "27";
$luyaran->sex = "love";

$luyaran->who();
echo "<br>";
$man = new man($luyaran,'142');
echo serialize($luyaran);
$luyaran_arr = array('name'=>'luyaran','age'=>'27','sex'=>'love');
echo "<br>";
echo serialize($luyaran_arr);
echo "<br>";
var_dump($man);
echo "<br>";
echo serialize($man);

輸出結果如下:

仔細看下輸出結果,我們可以發現,我們序列化之後的物件,都會附帶著所屬的類的名稱。那麼這個類名,有什麼用處呢???

它能夠保證,當前物件在執行所屬的類的方法(也就是這個物件自己所能執行的方法)時,可以正確的找到類的方法所在的程式碼空間(也就是這個物件它所擁有的方法儲存在的類裡)。

另外呢,當一個物件的例項變數,引用其它物件時,我們在序列化該物件時,也會對這個物件所引用的物件,進行例項化。

好,咱也不廢話,來總結下,物件和類的概念以及之間的相互關係:

  1. 類是定義一系列屬性和操作的模板,而物件,就是把屬性進行例項化,完事交給類裡面的方法,進行處理
  2. 物件的本質,就是資料,其本身不包含方法,但是其內部有一個指標,會指向一個類,而在這個類裡面,是可以包含方法的
  3. 類裡面的方法描述不同的屬性,因而,會產生不同的表現或者結果
  4. 類和物件是不可分割的,有物件,就必定有一個類是和它相對應的,但是,由標量進行強制轉化而產生的物件由PHP中,一個稱為“孤兒”的stdClass類,來收容它

對於我們而言呢,如果需要設計或者建立一個類,那麼我們就要從客觀世界中,抽象出來一套規律,總結出這類事物的共性,並且讓我們的這個類,可以與其它類,可以進行區分就好了。

我們區分類的依據就是其中的屬性和方法,而區分類的具體方法,就是例項化一個物件。

好啦,本次記錄就到這裡了。

如果感覺不錯的話,請多多點贊支援哦。。。