国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 詳解php用static方法的原因

詳解php用static方法的原因

2019-09-07 15:43laozhang PHP教程

這篇文章給大家分享了關于在PHP中使用static方法的原因以及相關實例代碼,有需要的朋友們參考下。

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

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

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

static全局變量和普通全局變量,static局部變量和普通局部變量,static函數與普通函數的區別?下面本文將一一為你解答。  

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

(2)從以上分析可以看出, 把局部變量改變為靜態變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變為靜態變量后是改變了它的作用域,限制了它的使用范圍。  

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

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

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

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

測試環境:

/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
<?php
class 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;

循環執行一千萬次執行結果如下:

/test # php staticTest.php

2.2938342094421

1.1871800422668

第二次執行結果:

2.303295135498

1.1807670593262

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

因此還是建議:

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91国内外精品自在线播放 | 成人中文字幕在线观看 | 亚洲精品久久久久久久久久久久久 | 高清中文字幕av | 99热在线播放 | 全部免费毛片在线播放 | 伊人天堂在线 | 精品欧美乱码久久久久久 | 狠狠操综合网 | a欧美| 日韩视频免费 | 美女久久久久 | 精品99在线 | 一区二区久久 | 免费午夜电影 | 精品国产一区二区三区小蝌蚪 | 欧美激情一区二区 | 成人涩涩日本国产一区 | 色噜噜狠狠一区二区三区狼国成人 | 亚洲精品一区二区 | 亚洲精品一 | 国内精品嫩模av私拍在线观看 | 黑人巨大精品欧美一区免费视频 | 日本a在线 | 欧美精品一区二区在线观看 | 午夜视频在线观看视频 | 欧美日韩国产在线播放 | 国产午夜精品久久久 | 中文字幕在线不卡 | 午夜精品久久久久久久久久久久久 | 午夜视频 | 91福利资源站 | 国产毛片一区二区 | 久久国产精品系列 | 免费毛片视频 | 在线播放亚洲 | 亚洲精品欧美精品 | 国产精品综合一区二区 | 国产91在线观看 | 日韩一区中文字幕 | 成人欧美一区二区三区色青冈 |