這篇文章主要介紹了php為什么要用static方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
在網(wǎng)站設(shè)計、成都網(wǎng)站制作過程中,需要針對客戶的行業(yè)特點、產(chǎn)品特性、目標受眾和市場情況進行定位分析,以確定網(wǎng)站的風格、色彩、版式、交互等方面的設(shè)計方向。成都創(chuàng)新互聯(lián)還需要根據(jù)客戶的需求進行功能模塊的開發(fā)和設(shè)計,包括內(nèi)容管理、前臺展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計和安全保護等功能。php用static方法的原因:1、全局變量的說明之前再冠以static 就構(gòu)成了靜態(tài)的全局變量;2、static函數(shù)與普通函數(shù)作用域不同,僅在本文件;3、如果能將類的方法定義成static,就盡量定義成static,其速度會提升將近4倍。
php用static方法的原因:
(1)全局變量(外部變量)的說明之前再冠以static 就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲方式, 靜態(tài)全局變量當然也是靜態(tài)存儲方式。這兩者在存儲方式上并無不同。這兩者的區(qū)別在于非靜態(tài)全局變量的作用域是整個源程序,當一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,因此可以避免在其它源文件中引起錯誤。
(2)從以上分析可以看出, 把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域,限制了它的使用范圍?! ?/p>
(3)static函數(shù)與普通函數(shù)作用域不同,僅在本文件。只在當前源文件中使用的函數(shù)應該說明為內(nèi)部函數(shù)(static),內(nèi)部函數(shù)應該在當前源文件中說明和定義。對于可在當前源文件以外使用的函數(shù),應該在一個頭文件中說明,要使用這些函數(shù)的源文件要包含這個頭文件。
如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。
實踐是檢驗代碼執(zhí)行效率的標準,于是趁著下班回家有點時間,做了個小測試:
先上測試代碼(如果有不對的地方,請大家指正哈):
測試環(huán)境:
/test # php -v PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
/test # uname -a Darwin 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
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í)行結(jié)果如下:
/test # php staticTest.php 2.2938342094421 1.1871800422668第二次執(zhí)行結(jié)果:
2.303295135498 1.1807670593262執(zhí)行很多次以后,都在2.3和1.18附近??梢?,雖然沒有文章中說的效率提升那么恐怖,性能的提升方面確實提升了一倍左右。
因此還是建議:
如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近1倍。
對于一個正常的php框架,里面的類和方法還是非常多的,如果我們能夠做成靜態(tài)方法,還是使用靜態(tài)方法比較好,效率比較高。
感謝你能夠認真閱讀完這篇文章,希望小編分享php為什么要用static方法內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,詳細的解決方法等著你來學習!
分享名稱:php為什么要用static方法-創(chuàng)新互聯(lián)
分享鏈接:http://weahome.cn/article/dpscgi.html