3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
PHP中的static與Java中的static不太一樣,PHP中的static是用來保留變數的值 例如 function test() { static $count = 0; return $count++; } print test(); print test(); print test(); 上面的範例,每次呼叫test()函式時,count變數會持續累加(可以應用在遞迴上面) 另外在物件的應用上,最典型的就是Singleton pattern(static將instance保留) class TEST { private static $_instance = null; private static $_count = 0; private function __construct(){ self::$_count++; } public static function getInstance() { if( self::$_instance === null ){ self::$_instance = new self(); } return self::$_instance; } public function getCount() { return self::$_count; } } //同一個instance $test = TEST::getInstance(); print $test -> getCount(); // print 1 $test2 = TEST::getInstance(); print $test2 -> getCount();// print 1 最後還有一點要注意,使用static::呼叫和用self::呼叫是不同的 如果在有繼承方法的狀況下,self::是呼叫父類別,而static::才是呼叫本身 範例 class A { public static function getSelf() { return new self(); } public static function getStatic() { return new static(); } } class B extends A {} class C extends B {} echo get_class(B::getSelf()); // A echo get_class(C::getSelf()); // A echo get_class(C::getStatic()); // C echo get_class(B::getStatic()); // B echo get_class(A::getStatic()); // A Categories: PHP 分類 Android AngularJS API Blueprint Chrome Database MySQL DataStructure Docker Editor Vim Firefox Git GitLab Google API Hadoop Language Go Java JavaScript jQuery jQueryChart Node.js Vue PHP Laravel ZendFramework Python Mac Network Cisco DLink Juniper Oauth Server Apache Share Unix FreeBSD Linux WebDesign Bootstrap CSS HTML Wordpress Search 搜尋關鍵字:

本文由blogjohnsonluorg提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦