導航:首頁 > 編程語言 > php靜態類有什麼用

php靜態類有什麼用

發布時間:2024-01-10 17:04:57

㈠ 靜態方法 有什麼優缺點 php中靜態方法(s

static方法是類中的一個成員方法,屬於整個類,即使不用創建任何對象也可以直接調用!
靜態方法效率上要比實例化高,靜態方法的缺點是不自動進行銷毀,而實例化的則可以做銷毀。
靜態方法和靜態變數創建後始終使用同一塊內存,而使用實例的方式會創建多個內存。
C++中,若類的方法前加了static關鍵字,則該方法稱為靜態方法,反之為實例方法。靜態方法為類所有,可以通過對象來使用,也可以通過類來使用。但一般提倡通過類名來使用,因為靜態方法只要定義了類,不必建立類的實例就可使用。靜態方法只能用類的靜態成員。

㈡ php static 方法有什麼好處

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

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

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

㈢ php class中public,private,protected,static

1. public:許可權是最大的,可以內部調用,實例調用

2. protected: 受保護類型,用於本類和繼承類調用

常用場景在許可權設置

有需要用到許可權的Class,只要繼承Base這個Class即可用到登錄驗證。執行Login的時候會先運行Base裡面的方法

3. private: 私有類型,只有在本類中使用。

4. static: 一般是在傳值的時候使用,表示值不會被修改,默認為public,可用::訪問

㈣ php 類中的static有什麼作用

static 是C中很常用的修飾符,它被用來控制變數的存儲方式和可見性
static 聲明的變數在C語言中有兩方面的特徵:

1)、變數會被放在程序的全局存儲區中,這樣可以在下一次調用的時候還可以保持原來的賦值。這一點是它與堆棧變數和堆變數的區別。

2)、變數用static告知編譯器,自己僅僅在變數的作用范圍內可見。這一點是它與全局變數的區別。

2、問題:Static的理解

關於static變數,請選擇下面所有說法正確的內容:

A、若全局變數僅在單個C文件中訪問,則可以將這個變數修改為靜態全局變數,以降低模塊間的耦合度;

B、若全局變數僅由單個函數訪問,則可以將這個變數改為該函數的靜態局部變數,以降低模塊間的耦合度;

C、設計和使用訪問動態全局變數、靜態全局變數、靜態局部變數的函數時,需要考慮重入問題;

D、靜態全局變數過大,可那會導致堆棧溢出。

答案與分析:

對於A,B:根據本篇概述部分的說明b),我們知道,A,B都是正確的。

對於C:根據本篇概述部分的說明a),我們知道,C是正確的(所謂的函數重入問題,下面會詳細闡述)。

對於D:靜態變數放在程序的全局數據區,而不是在堆棧中分配,所以不可能導致堆棧溢出,D是錯誤的。

因此,答案是A、B、C。

3、問題:不可重入函數

曾經設計過如下一個函數,在代碼檢視的時候被提醒有bug,因為這個函數是不可重入的,為什麼?

unsigned int sum_int( unsigned int base )
{
unsigned int index;
static unsigned int sum = 0; // 注意,是static類型的。
for (index = 1; index <= base; index++)
{
sum += index;
}
return sum;
}

答案與分析:

所謂的函數是可重入的(也可以說是可預測的),即:只要輸入數據相同就應產生相同的輸出。

這個函數之所以是不可預測的,就是因為函數中使用了static變數,因為static變數的特徵,這樣的函數被稱為:帶「內部存儲器」功能的的函數。因此如果我們需要一個可重入的函數,那麼,我們一定要避免函數中使用static變數,這種函數中的static變數,使用原則是,能不用盡量不用。

將上面的函數修改為可重入的函數很簡單,只要將聲明sum變數中的static關鍵字去掉,變數sum即變為一個auto 類型的變數,函數即變為一個可重入的函數。

當然,有些時候,在函數中是必須要使用static變數的,比如當某函數的返回值為指針類型時,則必須是static的局部變數的地址作為返回值,若為auto類型,則返回為錯指針。

㈤ 說說php面向對象編程時static,public,private,protected 各有什麼意義

staticpublic與publicstatic是等價的,這兩者只是兩個修飾符的順序不同。根據oracle.com教材中第八章的描述,如果兩個或兩個以上的(不同的)欄位修飾符出現在欄位聲明,它們出現的順序需與FieldModifier一致,這只是習慣,但不是必需的。部分修飾符說明:public是訪問許可權修飾符,用於控制外界對類內部成員的訪問,聲明為public的對象成員是完全共有的,外界可以隨意訪問,除此之外還有private,protected和默認。static控制類成員變化的修飾符。static是靜態成員修飾符,其修飾的靜態變數脫離具體對象獨立存在,在內存中之後一份拷貝,所有的對象都公用這一個存儲空間,所以對static修飾的靜態變數進行的修改對該類的所有對象都起作用。static修飾的靜態函數代表所有對象的統一操作,只能調用靜態變數。static是針對面向對象中的「多態」而提出來的,static修飾的靜態成員不存在多態性。附:FieldModifier順序

閱讀全文

與php靜態類有什麼用相關的資料

熱點內容
為什麼開機畫面有安卓標志呢 瀏覽:315
java數據結構和演算法分析 瀏覽:398
怎麼理解虛擬伺服器 瀏覽:402
黑馬程序員ai培訓課資源 瀏覽:648
abplc加密軟體下載 瀏覽:421
交叉編譯內核後 瀏覽:275
php小程序100行左右 瀏覽:103
要進行壓縮解壓的命令是 瀏覽:736
mscod編程平台 瀏覽:520
pdf文字轉換word文檔 瀏覽:992
php連接mssql2005 瀏覽:894
庫進行編譯可以嗎 瀏覽:773
雲南石油app推薦碼哪裡看 瀏覽:457
ipone有文件加密嗎 瀏覽:72
蝴蝶文件夾怎麼使用 瀏覽:699
wps文件夾安裝包在哪裡 瀏覽:439
android2x 瀏覽:135
知音購物app哪裡下載 瀏覽:527
stc單片機看門狗 瀏覽:790
單片機與計算機串口通信 瀏覽:309