国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > PHP > 正文

PHP靜態(tài)延遲綁定和普通靜態(tài)效率的對(duì)比

2024-05-05 00:00:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

PHP靜態(tài)延遲綁定和普通靜態(tài)效率的對(duì)比

只是一個(gè)簡(jiǎn)單的小實(shí)驗(yàn),對(duì)比了下 延遲綁定 和 非延遲的效率

延遲綁定主要就是使用 static 關(guān)鍵字來(lái)替代原來(lái)的 self ,但功能非常強(qiáng)大了

實(shí)驗(yàn)代碼:

class A {   protected static $cc1 = array('a1', 'b', 'c', 'd');   protected static $cc2 = array('a2', 'b', 'c', 'd');   protected static $cc3 = array('a3', 'b', 'c', 'd');   protected static $cc4 = array('a4', 'b', 'c', 'd');   protected static $cc5 = array('a5', 'b', 'c', 'd');    public static function n1() {     return static::$cc1;   }   public static function n2() {     return static::$cc2;   }   public static function n3() {     return static::$cc3;   }   public static function n4() {     return static::$cc4;   }   public static function n5() {     return static::$cc5;   } }  class C extends A {  }  class B {   protected static $cc1 = array('a1', 'b', 'c', 'd');   protected static $cc2 = array('a2', 'b', 'c', 'd');   protected static $cc3 = array('a3', 'b', 'c', 'd');   protected static $cc4 = array('a4', 'b', 'c', 'd');   protected static $cc5 = array('a5', 'b', 'c', 'd');    public static function n1() {     return self::$cc1;   }   public static function n2() {     return self::$cc2;   }   public static function n3() {     return self::$cc3;   }   public static function n4() {     return self::$cc4;   }   public static function n5() {     return self::$cc5;   } } 

上面總共 A 、B 、C 三個(gè)類(lèi),里面全是靜態(tài)成員變量和方法,其中

A 類(lèi)是使用了靜態(tài)延遲,
B 類(lèi)是非延遲,
C 類(lèi)是繼承A類(lèi)實(shí)現(xiàn)了靜態(tài)成員變量和方法的延遲綁定。

過(guò)程也不多說(shuō)了,環(huán)境是 PHP5.4.27 直接上測(cè)試結(jié)果:

有兩種情況,

1. 當(dāng)只有 A、B類(lèi)(也就是不讓任何類(lèi)繼承A類(lèi))時(shí),效率上幾乎沒(méi)有差別的

2. 當(dāng)A類(lèi)被C類(lèi)繼承了之后,使用靜態(tài)延遲綁定的A類(lèi)性能將會(huì)比 B類(lèi)稍差一些(只要A類(lèi)有了繼承的類(lèi)就會(huì)變慢)

循環(huán)十萬(wàn)次,耗時(shí)在 2.8s ~ 3.2s 之間 時(shí)間差距在 0.3 秒左右,應(yīng)該還是可以忽略不計(jì)了吧

補(bǔ)充個(gè):后來(lái)加了些測(cè)試方法,如果 C 類(lèi)繼承 A 類(lèi)后,重載了部分 A 類(lèi)中的靜態(tài)成員變量,重載的越多則速度和 B 類(lèi)(非延遲)就越接近,但 A 類(lèi)的速度仍然會(huì)比 B 類(lèi) 和 C 類(lèi)慢

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 新和县| 民勤县| 田阳县| 安平县| 姚安县| 元谋县| 清水县| 元谋县| 阜南县| 通榆县| 平昌县| 桦川县| 桃江县| 固镇县| 常德市| 仁布县| 神木县| 屯留县| 平顺县| 克拉玛依市| 仁寿县| 汝南县| 镇平县| 饶河县| 阳高县| 渭源县| 商河县| 古交市| 封开县| 清水河县| 平江县| 佛教| 高要市| 隆子县| 衡南县| 云龙县| 邛崃市| 定安县| 上蔡县| 平陆县| 库尔勒市|