導航:首頁 > 編程語言 > php類修飾符

php類修飾符

發布時間:2023-02-18 03:22:51

php中的訪問修飾符只有 public,protected 和private 三個嘛

PHP有三種訪問方式ublic,private和protected. 對於一個類成員的訪問方式,可以是其中之一. 如果你沒有指明訪問方式,默認的訪問方式為public. 你也可以為靜態成員指明一種訪問方式,將訪問方式放在static關鍵字之前(如public static).

Ⅱ 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 與public static有區別嗎

static public與public static是等價的,這兩者只是兩個修飾符的順序不同。
根據oracle.com教材中第八章的描述,如果兩個或兩個以上的(不同的)欄位修飾符出現在欄位聲明,它們出現的順序需與FieldModifier一致,這只是習慣,但不是必需的。

部分修飾符說明:
public是訪問許可權修飾符,用於控制外界對類內部成員的訪問,聲明為public的對象成員是完全共有的,外界可以隨意訪問,除此之外還有private,protected和默認。
static控制類成員變化的修飾符。static是靜態成員修飾符,其修飾的靜態變數脫離具體對象獨立存在,在內存中之後一份拷貝,所有的對象都公用這一個存儲空間,所以對static修飾的靜態變數進行的修改對該類的所有對象都起作用。static修飾的靜態函數代表所有對象的統一操作,只能調用靜態變數。static是針對面向對象中的「多態」而提出來的,static修飾的靜態成員不存在多態性。

附:FieldModifier順序

Ⅳ 我想輸出php類中的私有屬性的值,怎麼輸出不出來呢

我想你是不清楚公有,私有,受保護的區別吧:
PHP中有三種訪問修飾符,分別是:
public(公共的、默認)
protected(受保護的)
private(私有的)
public(公共的、默認)在PHP5中如果類沒有指定成員的訪問修飾符,默認就是public的訪問許可權。
protected(受保護的)被聲明為protected的成員,只允許該類的子類進行訪問。
private(私有的 ) 被定義為private的成員,對於類內部所有成員都可見,沒有訪問限制。對類外部不允許訪問。

閱讀全文

與php類修飾符相關的資料

熱點內容
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275
pdf里怎麼修改文字 瀏覽:686
已保存文檔加密如何設置 瀏覽:413
怎樣判斷加密貨幣是牛是熊 瀏覽:948