PHP 開發人員常玩的五個魔術,還不會就low了

魔術方法: 是指某些情況下,會自動調用的方法,稱為魔術方法

我們先認識下,下面的這些常用的魔術方法:__Tostring () __Call () __autoLoad () __isset () __unset ()

  1. /***

  2. 魔術方法:

  3. 是指某些情況下,會自動調用的方法,稱為魔術方法

  4. PHP面向對象中,提供了這幾個魔術方法,

  5. 他們的特點 都是以雙下劃線__開頭的

  6. __construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state() 和 __clone()

  7. __construct :構造方法

  8. __destruct :析構方法

  9. __clone() :克隆方法,當對象被克隆時,將會自動調用

  10. ***/

  11. //__clone() :克隆方法,當對象被克隆時,將會自動調用

  12. class Human {

  13. public$age = 22;

  14. publicfunction __clone() {

  15. echo'有人克隆我!假冒';

  16. }

  17. }

  18. $lisi = new Human();

  19. $zhangsan = clone $lisi;

  20. /*

  21. 結果:

  22. 有人克隆我!假冒

  23. */

  24. ?>

1.__Tostring() 用於定義輸出對象引用時調用 常用於打印一些對象的信息必須有返回值

PHP 開發人員常玩的五個魔術,還不會就low了

2.__isset() 判斷類中不可見屬性或方法是否存在時自動調用

我們先介紹一下isset方法,該方法用於判定屬性和方法是否存在

如果我們使用isset(per->$name); // 返回值是false,但是$name屬性的確存在,怎麼解決呢?

1.將$name定義為私有屬性

2.在類定義中添加

PHP 開發人員常玩的五個魔術,還不會就low了

這樣,再次調用isset($name);返回值就為true了;

3.__unset() 清除類中私有變量時自動調用

與之結合的是unset() ,可以刪除屬性,當我們需要刪除類中屬性的時候,公有屬性我們可以直接

刪除,如果是私有屬性我們僅僅通過這個方法就無法實現了

那到底怎樣實現呢?我們可以使用__unset()方法實現這個功能但我們需要在類中添加

PHP 開發人員常玩的五個魔術,還不會就low了

然後我們再調用unset($name);就可以刪除person類中的私有屬性$name了

4.__call()方法當調用類實例中不存在的函數時 [自動執行]

如果試圖調用類中不存在的函數,會出現語法錯誤

這時我們可以在類中聲明Call()方法;

PHP 開發人員常玩的五個魔術,還不會就low了

5.__autoLoad [自動加載] 使用的類文件 該函數是在引用的頁面添加

我們都使用過這樣情況,在頁面中需要調用其他php文件,我們需要使用include方法

但是如果有幾十個頁面需要引用,未免太過繁瑣,我們可以在該頁面中使用autoload方法

PHP 開發人員常玩的五個魔術,還不會就low了

這樣凡是引用到其他類的地方,都會自動引用該類文件 前提類文件的名稱必須是 類名.php

內容就到這裡了, 大家都學會了嗎,沒有的話,QQ搜索【php學習特邀群】,可以一起交流下這些有趣的東西,也可以來這裡學習~等你來


分享到:


相關文章: