[TOC]
# 對象在內存中的存在形式和對象默認的傳遞方式
1. $person2 = $person
```
$person = new Person();
$person2 = $person;
說明:把一個對象賦值給另一個變量,這個也是值傳遞,但是這個值傳遞的是對象的引用(可以理解為對象標識符),即每個包含對象的變量都持有對象的引用(reference),而不是整個對象的拷貝。
```

2. $person2 = &$person

# 析構方法
定義:在系統銷毀對象時,會自動觸發析構方法,去釋放或銷毀對象在創建的時候,分配的相關資源。
```
public function __destruct(){
代碼塊;//可以去釋放相關資源
}
```
觸發時機:
* 程序運行結束后,對象被銷毀時
* 當沒有變量指向對象時,也就是對象沒人使用了,比如unset()或者對象變量指向了其它數據
析構方法調用的順序:
* 先創建的對象,后被銷毀
* 后創建的對象,先被銷毀
# PHP的垃圾回收機制
基本介紹:
* 在PHP中,當一個對象沒有任何引用指向它的時候,就會成為一個垃圾對象,PHP將啟用垃圾回收將對象銷毀
* 當程序退出前,PHP也將啟用垃圾回收器,銷毀對象
# 魔術方法
基本介紹:
* 由系統自動調用
* 函數名的開頭 由__兩個下劃線
特別說明:
PHP將所有以__(兩個下劃線)開頭的類方法保留為魔術方法。所以在定義類方法時,除了上述魔術方法,建議不要以__為前綴
魔術方法概覽:
1.
```
__construct 構造方法
__destruct 析構方法
```
2.
```
__call($method_name,$args) 在對象調用一個不可訪問方法時(比如函數private/protected/不存在),__call會被調用
__callStatic($method_name,$args) 與上面一致,只不過這個指的是靜態方法
```
3.
```
__get($pro_name) 當去訪問一個不可以訪問的屬性(property)時(取值),默認會調用魔術方法__get
__set($pro_name,$value) 當去訪問一個不可以訪問的屬性(property)時(賦值),默認會調用魔術方法__set
```
4.
```
__isset($pro_name) 當對不可訪問屬性(比如:private/protected/不存在)調用isset()或empty()時,__isset()會被調用
__unset($pro_name) 當對不可訪問屬性(比如:private/protected/不存在)調用unset()時,__unset()會被調用
```
5.
```
__sleep
__wakeup
```
6.
```
__toString() 將類以字符串的形式輸出
```
7.
```
__set_state
```
8.
```
__clone() 如果定義了__clone()方法,則新創建的對象(復制生成的對象)中的__clone()方法會被調用
克隆與被克隆的對象指向的內存空間不同,只是普通的備份,不會像對象賦值一樣,傳遞引用
```
- PHP操作集合
- 獲取字符首字母
- PHP實現定時備份MySQL數據庫
- PHP定時發送郵件
- PHP基本語法
- 總結
- 命名空間
- 錯誤抑制符
- 位運算符
- 原碼,反碼,補碼
- traits
- PHP的反射機制
- const和define的區別
- 語法
- 常用的函數
- 1.變量及打印函數
- 2.引入文件
- 3.常量
- 4.錯誤處理
- 5.面向對象
- 數據結構與算法
- 結構
- 數組
- 索引
- 散列表(哈希表)
- 棧
- 隊列
- 鏈表
- 算法
- 排序算法
- 插入排序
- 冒泡排序
- 選擇排序
- 歸并排序
- 快速排序
- 查找算法
- 二分查找
- 二分查找變形版本1:查詢數據在序列中第一次出現
- 哈希算法
- 算法復雜度
- Smarty模板引擎
- composer
- yaf
- yaf的安裝配置
- 其它
- Java
- JavaSE
- 1.Java發展及JDK安裝配置
- 2.Eclipse的下載及安裝
- 3.Java開發基礎
- 虛擬機
- 2.編輯虛擬機設置
- 1.虛擬機下安裝centos
- 3.安裝vmtools
- Linux
- 1.vi和vim編輯器
- 2.開機、重啟和用戶登錄注銷
- 3.用戶管理
- 4.用戶組管理
- 5.用戶和組的相關文件
- 6.linux運行級別
- 7.幫助指令
- 8.文件目錄類指令
- 9.時間日期類
- 10.搜索查找類
- 11.壓縮和解壓縮
- 12.組管理和權限管理(難點,重點)
- 虛擬主機的配置
- phpstudy快捷配置
- 配置文件配置
- PHP面向對象高級特性
- SPL標準庫(PHP標準庫)
- PHP鏈式操作的實現
- 面向對象編程的基本原則
- 設計模式
- 基本的設計模式