国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php的 __callStatic 函數(shù)

fancyLuo / 1944人閱讀

摘要:現(xiàn)在很多框架中調(diào)用方法都是這種格式的但是他們真的是靜態(tài)方法嗎這種情況在中尤其常見但是開發(fā)過程中很明顯這些有一部分不是靜態(tài)的比如你使用一個(gè)模型那么你每次實(shí)例化出來他都是一個(gè)全新的互不影響這里就用到了一個(gè)魔術(shù)方法舉個(gè)栗子當(dāng)然魔術(shù)方法也是很耗性

現(xiàn)在很多框架中調(diào)用方法都是Foo::bar()這種格式的,但是他們真的是靜態(tài)方法嗎?

這種情況在 larave 中尤其常見,但是開發(fā)過程中很明顯這些有一部分不是靜態(tài)的,比如你使用一個(gè)模型User,那么你每次實(shí)例化出來他都是一個(gè)全新的,互不影響,這里就用到了一個(gè)魔術(shù)方法__callStatic

舉個(gè)栗子:

hello();
$test::hi();
//this is __call:hello
//this is __callStatic:hi

當(dāng)然魔術(shù)方法也是很耗性能的一種方式,每次調(diào)用的時(shí)候后回先掃一遍class沒找到方法時(shí)才會(huì)調(diào)用它,而為了代碼的整潔和抽象這個(gè)方法也能給很大的幫助,在這之間去要有個(gè)權(quán)衡

下面實(shí)現(xiàn)的 log 類,采用的就是這種方法,將方法解耦出來,只要符合規(guī)定的接口就能調(diào)用

alert("hello");

輸出:

this is Log method info
array(4) {
  [0]=>
  string(6) "好好"
  [1]=>
  string(6) "學(xué)習(xí)"
  [2]=>
  string(6) "天天"
  [3]=>
  string(6) "向上"
}
this is Log method alert: hello

也許有的小伙伴已經(jīng)看出來了,沒錯(cuò)!這段代碼就是仿照(抄)的 EasyWechat的日志部分,代碼片段

博客原文

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/23103.html

相關(guān)文章

  • 搞定PHP面試 - PHP魔術(shù)方法知識(shí)點(diǎn)整理

    摘要:魔術(shù)方法知識(shí)點(diǎn)整理代碼使用語(yǔ)法編寫一構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)具有構(gòu)造函數(shù)的類會(huì)在每次創(chuàng)建新對(duì)象時(shí)先調(diào)用此方法,所以非常適合在使用對(duì)象之前做一些初始化工作。在析構(gòu)函數(shù)中調(diào)用將會(huì)中止其余關(guān)閉操作的運(yùn)行。析構(gòu)函數(shù)中拋異常會(huì)導(dǎo)致致命錯(cuò)誤。 PHP魔術(shù)方法知識(shí)點(diǎn)整理 代碼使用PHP7.2語(yǔ)法編寫 一、構(gòu)造函數(shù)和析構(gòu)函數(shù) __construct() 構(gòu)造函數(shù) __construct ([ mi...

    付永剛 評(píng)論0 收藏0
  • PHP面向?qū)ο缶幊蹋好嫦驅(qū)ο蟾拍睢⒒緦?shí)踐、高級(jí)實(shí)戰(zhàn)、PHP面向?qū)ο筇厥鈱?shí)踐

    摘要:一面向?qū)ο蟮母拍钍裁词敲嫦驅(qū)ο笫篱g萬物皆對(duì)象,抽象的也是對(duì)象,一切可見或不可見都是對(duì)象對(duì)象的基本組成對(duì)象包含兩個(gè)部分對(duì)象的組成元素是對(duì)象的數(shù)據(jù)模型,用于描述對(duì)象的數(shù)據(jù)又稱為對(duì)象的屬性,或者對(duì)象的成員變量對(duì)象的行為是對(duì)象的行為模型,用于描述對(duì) 一、面向?qū)ο蟮母拍?1.1 什么是面向?qū)ο?object oriented) ?????世間萬物皆對(duì)象,抽象的也是對(duì)象,一切可見或不可見都是對(duì)象 ...

    worldligang 評(píng)論0 收藏0
  • Laravel學(xué)習(xí)筆記之PHP重載(overloading)

    摘要:重載在中就大量應(yīng)用了重載相關(guān)知識(shí),如在中就用到了方法重載知識(shí)使用魔術(shù)方法來動(dòng)態(tài)創(chuàng)建類中未定義或不可見的靜態(tài)方法。中通過引入魔術(shù)方法來實(shí)現(xiàn)動(dòng)態(tài)的創(chuàng)建類屬性和方法,包括屬性重載的魔術(shù)方法和方法重載的魔術(shù)方法。 說明:本文主要講述PHP中重載概念,由于Laravel框架中經(jīng)常使用這塊知識(shí)點(diǎn),并且PHP的重載概念又與其他OOP語(yǔ)言如JAVA中重載概念不一樣,故復(fù)習(xí)并記錄相關(guān)知識(shí)點(diǎn)。同時(shí),作者會(huì)...

    khs1994 評(píng)論0 收藏0
  • php學(xué)習(xí)筆記(四)魔術(shù)方法

    摘要:將所有以兩個(gè)下劃線開頭的類方法保留為魔術(shù)方法。和當(dāng)對(duì)象被當(dāng)做使用時(shí),這個(gè)方法會(huì)被自動(dòng)調(diào)用。此方法必須返回一個(gè)字符串當(dāng)對(duì)象被當(dāng)成方法調(diào)用時(shí),這個(gè)方法會(huì)被自動(dòng)調(diào)用。參數(shù)是一個(gè)枚舉數(shù)組,包含著要傳遞給方法的參數(shù)。函數(shù)把數(shù)組元素組合為一個(gè)字符串。 PHP 將所有以 _ _(兩個(gè)下劃線)開頭的類方法保留為魔術(shù)方法。 __toString() 和__invoke() public stri...

    wangdai 評(píng)論0 收藏0
  • PHP - 魔術(shù)常量、魔術(shù)方法

    摘要:魔術(shù)方法構(gòu)造函數(shù)允行開發(fā)者在一個(gè)類中定義一個(gè)方法作為構(gòu)造函數(shù)。如果子類沒有定義構(gòu)造函數(shù)則會(huì)如同一個(gè)普通的類方法一樣從父類繼承假如沒有被定義為的話。和函數(shù)會(huì)檢查類中是否存在一個(gè)魔術(shù)方法。魔術(shù)常量魔法方法 PHP - 魔術(shù)常量 __LINE__ 文件中的當(dāng)前行號(hào) __FILE__ 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。 __DIR__ 文件所在的目錄。如果用在...

    qpal 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<