麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

php用static方法的原因介紹(代碼示例)

2020-03-22 20:20:59
字體:
來源:轉載
供稿:網友
本篇文章給大家?guī)淼膬热菔顷P于php用html' target='_blank'>static方法的原因介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

靜態(tài)方法不需要所在類被實例化就可以直接使用。

靜態(tài)方法效率上要比實例化高,靜態(tài)方法的缺點是不自動進行銷毀,而實例化的則可以做銷毀。

靜態(tài)方法和靜態(tài)變量創(chuàng)建后始終使用同一塊內存,而使用實例的方式會創(chuàng)建多個內存。

static全局變量和普通全局變量,static局部變量和普通局部變量,static函數(shù)與普通函數(shù)的區(qū)別?下面本文將一一為你解答。
(1)全局變量(外部變量)的說明之前再冠以static 就構成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲方式, 靜態(tài)全局變量當然也是靜態(tài)存儲方式。這兩者在存儲方式上并無不同。這兩者的區(qū)別在于非靜態(tài)全局變量的作用域是整個源程序,當一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內,只能為該源文件內的函數(shù)公用,因此可以避免在其它源文件中引起錯誤。

(2)從以上分析可以看出, 把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域,限制了它的使用范圍。

(3)static函數(shù)與普通函數(shù)作用域不同,僅在本文件。只在當前源文件中使用的函數(shù)應該說明為內部函數(shù)(static),內部函數(shù)應該在當前源文件中說明和定義。對于可在當前源文件以外使用的函數(shù),應該在一個頭文件中說明,要使用這些函數(shù)的源文件要包含這個頭文件。

如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。

實踐是檢驗代碼執(zhí)行效率的唯一標準,于是趁著下班回家有點時間,做了個小測試:

先上測試代碼(如果有不對的地方,請大家指正哈):

測試環(huán)境:

/test # php -vPHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15) Copyright (c) 1997-2013 The PHP GroupZend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
/test # uname -aDarwin 192.168.0.101 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64
 ?phpclass staticTest {public function test() {$i = 0; $i++;}
public static function testStatic() {$i = 0;$i++;$start = microtime(true);for($i=0;$i 10000000;$i++) {$test = new staticTest();$test- test();echo (microtime(true) - $start) . /n $start = microtime(true);for($i=0;$i 10000000;$i++) {staticTest::testStatic();echo microtime(true) - $start;

循環(huán)執(zhí)行一千萬次執(zhí)行結果如下:

/test # php staticTest.php

2.2938342094421

1.1871800422668
第二次執(zhí)行結果:

2.303295135498

1.1807670593262

執(zhí)行很多次以后,都在2.3和1.18附近。可見,雖然沒有文章中說的效率提升那么恐怖,性能的提升方面確實提升了一倍左右。

因此還是建議:

如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近1倍。

對于一個正常的php框架,里面的類和方法還是非常多的,如果我們能夠做成靜態(tài)方法,還是使用靜態(tài)方法比較好,效率比較高。

相關推薦:

PHP類的靜態(tài)(static)方法和靜態(tài)(static)變量使用介紹

PHP靜態(tài)變量static的使用介紹_PHP教程

以上就是php用static方法的原因介紹(代碼示例)的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美性色黄大片www 操碰网 | 免费一级特黄欧美大片勹久久网 | 法国极品成人h版 | 国产一区日韩精品 | 在线观看中文字幕av | 一区二区三区欧美在线 | 大奶一级片 | 亚洲一级片在线观看 | 2017亚洲男人天堂 | 欧美一级性 | 欧美成人午夜 | 久久久久久久久浪潮精品 | 亚洲第一页夜 | av成人免费在线观看 | 制服丝袜成人动漫 | 久久久久国产精品久久久久 | 第一区免费在线观看 | 中文字幕在线观看国产 | 亚洲综人网 | 哪里可以看免费的av | 亚洲第一成人久久网站 | 久久久久久久高清 | 久草在线播放视频 | 国产午夜网 | 精品久久久久久中文字幕 | 最新久久免费视频 | 亚洲福利在线免费观看 | av免费在线免费观看 | 手机免费看一级片 | 日本a∨精品中文字幕在线 欧美1—12sexvideos | 国产一区二区精彩视频 | 午夜爽爽爽男女免费观看hd | 久久色网站 | 亚洲视频在线一区二区 | hd极品free性xxx一护士 | 成人短视频在线播放 | 国产亚洲精品综合一区91 | 日韩精品中文字幕在线观看 | 69性欧美高清影院 | 欧洲黄视频 | 中文字幕四区 |