php的一些理解(物件與類的概念以及相互關係理解)
阿新 • • 發佈:2018-11-22
先來看一段簡單的程式碼:
<?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);
輸出結果如下:
仔細看下輸出結果,我們可以發現,我們序列化之後的物件,都會附帶著所屬的類的名稱。那麼這個類名,有什麼用處呢???
它能夠保證,當前物件在執行所屬的類的方法(也就是這個物件自己所能執行的方法)時,可以正確的找到類的方法所在的程式碼空間(也就是這個物件它所擁有的方法儲存在的類裡)。
另外呢,當一個物件的例項變數,引用其它物件時,我們在序列化該物件時,也會對這個物件所引用的物件,進行例項化。
好,咱也不廢話,來總結下,物件和類的概念以及之間的相互關係:
- 類是定義一系列屬性和操作的模板,而物件,就是把屬性進行例項化,完事交給類裡面的方法,進行處理
- 物件的本質,就是資料,其本身不包含方法,但是其內部有一個指標,會指向一個類,而在這個類裡面,是可以包含方法的
- 類裡面的方法描述不同的屬性,因而,會產生不同的表現或者結果
- 類和物件是不可分割的,有物件,就必定有一個類是和它相對應的,但是,由標量進行強制轉化而產生的物件由PHP中,一個稱為“孤兒”的stdClass類,來收容它
對於我們而言呢,如果需要設計或者建立一個類,那麼我們就要從客觀世界中,抽象出來一套規律,總結出這類事物的共性,並且讓我們的這個類,可以與其它類,可以進行區分就好了。
我們區分類的依據就是其中的屬性和方法,而區分類的具體方法,就是例項化一個物件。
好啦,本次記錄就到這裡了。
如果感覺不錯的話,請多多點贊支援哦。。。