|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 本篇文章給大家帶來的內容是關于php用static方法的原因介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。靜態方法不需要所在類被實例化就可以直接使用。 靜態方法效率上要比實例化高,靜態方法的缺點是不自動進行銷毀,而實例化的則可以做銷毀。 靜態方法和靜態變量創建后始終使用同一塊內存,而使用實例的方式會創建多個內存。 static全局變量和普通全局變量,static局部變量和普通局部變量,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框架,里面的類和方法還是非常多的,如果我們能夠做成靜態方法,還是使用靜態方法比較好,效率比較高。 相關推薦: PHP類的靜態(static)方法和靜態(static)變量使用介紹 以上就是php用static方法的原因介紹(代碼示例)的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!