茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    php中靜態(tài)類與靜態(tài)變量用法的區(qū)別分析
    來源:易賢網(wǎng) 閱讀:808 次 日期:2015-01-27 14:10:52
    溫馨提示:易賢網(wǎng)小編為您整理了“php中靜態(tài)類與靜態(tài)變量用法的區(qū)別分析”,方便廣大網(wǎng)友查閱!

    static是定義一個靜態(tài)對象或靜態(tài)變量,關(guān)于static 定義的變量或類方法有什么特性我們看完本文章的相關(guān)實例后就見分曉了.

    1. 創(chuàng)建對象$object = new Class(),然后使用”->”調(diào)用:$object->attribute/function,前提是該變量/方法可訪問.

    2. 直接調(diào)用類方法/變量:class::attribute/function,無論是靜態(tài)/非靜態(tài)都可以,但是有前提條件.

    A. 如果是變量,需要該變量可訪問.

    B. 如果是方法,除了該方法可訪問外,還需要滿足.

    ① 如果是靜態(tài)方法,沒有特殊條件.

    ② 如果是非靜態(tài)方法,需要改方法中沒有使用$this,即沒有調(diào)用非靜態(tài)的變量/方法,當(dāng)然,調(diào)用靜態(tài)的變量/方法沒有問題.

    然后我們再看一下使用$object->… 和使用class::… 都有什么區(qū)別:

    1. 使用$object->… ,需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象.

    2. 使用class::… 調(diào)用靜態(tài)方法/變量,不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象.

    3. 使用class::… 調(diào)用非靜態(tài)方法/變量,也不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象.

    然后奇怪的地方就出來了,既然2和3都一樣,那靜態(tài)方法/變量存在還有什么意義呢?

    靜態(tài)static:聲明類成員或方法為 static,就可以不實例化類而直接訪問,不能通過一個對象來訪問其中的靜態(tài)成員(靜態(tài)方法除外),靜態(tài)成員屬于類,不屬于任何對象實例,但類的對象實例都能共享.

    例子,代碼如下:

    代碼如下:

    <?php

    Class Person{

    // 定義靜態(tài)成員屬性

    public static $country = "中國";

    // 定義靜態(tài)成員方法

    public static function myCountry() {

    // 內(nèi)部訪問靜態(tài)成員屬性

    echo "我是".self::$country."人<br />";

    }

    }

    class Student extends Person {

    function study() {

    echo "我是". parent::$country."人<br />";

    }

    }

    // 輸出成員屬性值

    echo Person::$country."<br />"; // 輸出:中國

    $p1 = new Person();

    //echo $p1->country; // 錯誤寫法

    // 訪問靜態(tài)成員方法

    Person::myCountry(); // 輸出:我是中國人

    // 靜態(tài)方法也可通過對象訪問:

    $p1->myCountry();

    // 子類中輸出成員屬性值

    echo Student::$country."<br />"; // 輸出:中國

    $t1 = new Student();

    $t1->study(); // 輸出:我是中國人

    ?>

    運(yùn)行該例子,輸出:

    中國

    我是中國人

    我是中國人

    中國

    我是中國人

    小結(jié):在類內(nèi)部訪問靜態(tài)成員屬性或者方法,使用 self::(注意不是 $slef),代碼如下:

    代碼如下:

    slef:: $country

    slef:: myCountry()

    在子類訪問父類靜態(tài)成員屬性或方法,使用 parent::(注意不是 $parent),代碼如下:

    代碼如下:

    parent:: $country

    parent:: myCountry()

    外部訪問靜態(tài)成員屬性和方法為 類名/子類名::,代碼如下:

    代碼如下:

    Person::$country

    Person::myCountry()

    Student::$country

    但靜態(tài)方法也可以通過普通對象的方式訪問.

    例子,聲明靜態(tài)變量,代碼如下:

    代碼如下:

    <?PHP

    function foo(){

    static $int = 0;// correct

    static $int = 1+2; // wrong (as it is an expression)

    static $int = sqrt(121); // wrong (as it is an expression too)

    $int++;

    echo $int;

    }

    ?>

    例子,使用靜態(tài)變量的例子,代碼如下:

    代碼如下:

    <?PHP

    function Test()

    {

    static $w3sky = 0;

    echo $w3sky;

    $w3sky++;

    }

    ?>

    現(xiàn)在,每次調(diào)用 Test() 函數(shù)都會輸出 $w3sky 的值并加一.

    靜態(tài)變量也提供了一種處理遞歸函數(shù)的方法,遞歸函數(shù)是一種調(diào)用自己的函數(shù),寫遞歸函數(shù)時要小心,因為可能會無窮遞歸下去,必須確保有充分的方法來中止遞歸,一下這個簡單的函數(shù)遞歸計數(shù)到 10,使用靜態(tài)變量 $count 來判斷何時停止.

    例子,靜態(tài)變量與遞歸函數(shù),代碼如下:

    代碼如下:

    <?PHP

    function Test()

    {

    static $count = 0;

    $count++;

    echo $count;

    if ($count < 10) {

    Test();

    }

    $count--;

    }

    ?>

    更多信息請查看IT技術(shù)專欄

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:php中靜態(tài)類與靜態(tài)變量用法的區(qū)別分析
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報班

    • 報班類型
    • 姓名
    • 手機(jī)號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)