茄子在线看片免费人成视频,午夜福利精品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) 閱讀:1209 次 日期:2016-08-22 14:26:50
    溫馨提示:易賢網(wǎng)小編為您整理了“淺析php靜態(tài)方法與非靜態(tài)方法的用法區(qū)別”,方便廣大網(wǎng)友查閱!

    在php編程中,static關(guān)鍵字聲明一個(gè)屬性或方法是和類相關(guān)的,而不是和類的某個(gè)特定的實(shí)例相關(guān),因此,這類屬性或方法也稱為“類屬性”或“類方法”

    如果訪問控制權(quán)限允許,可不必創(chuàng)建該類對(duì)象而直接使用類名加兩個(gè)冒號(hào)“::”調(diào)用。

    static關(guān)鍵字可以用來修飾變量、方法。

    不經(jīng)過實(shí)例化,就可以直接訪問類中static的屬性和static的方法。

    static 的屬性和方法,只能訪問static的屬性和方法,不能類訪問非靜態(tài)的屬性和方法。因?yàn)殪o態(tài)屬性和方法被創(chuàng)建時(shí),可能還沒有任何這個(gè)類的實(shí)例可以被調(diào)用。

    static的屬性,在內(nèi)存中只有一份,為所有的實(shí)例共用。

    使用self:: 關(guān)鍵字訪問當(dāng)前類的靜態(tài)成員。

    一個(gè)類的所有實(shí)例,共用類中的靜態(tài)屬性。

    即在內(nèi)存中即使有多個(gè)實(shí)例,靜態(tài)的屬性也只有一份。

    例子,設(shè)置了一個(gè)計(jì)數(shù)器$count屬性,設(shè)置private 和 static 修飾。

    這樣,外界并不能直接訪問$count屬性。而程序運(yùn)行的結(jié)果也看到多個(gè)實(shí)例在使用同一個(gè)靜態(tài)的$count 屬性。

    <?php  

    class user 

    {  

     private static $count = 0 ; //記錄所有用戶的登錄情況.  

     public function __construct() {  

      self::$count = self::$count + 1;  

     }  

     public function getcount() {  

      return self::$count;  

     }  

     public function __destruct() {  

      self::$count = self::$count - 1;  

     }  

    }  

    $user1 = new user();  

    $user2 = new user();  

    $user3 = new user();  

    echo "now here have " . $user1->getcount() . " user";  

    echo "<br />";  

    unset($user3);  

    echo "now here have " . $user1->getcount() . " user";  

    ?>

    二,靜態(tài)屬性直接調(diào)用

    靜態(tài)屬性不需要實(shí)例化就可以直接使用,在類還沒有創(chuàng)建時(shí)就可以直接使用。

    使用方式:

    類名:: 靜態(tài)屬性名

    <?php  

    class math 

    {  

     public static $pi = 3.14;  

    }  

    // 求一個(gè)半徑3的園的面積。  

    $r = 3;  

    echo "半徑是 $r 的面積是<br />";  

    echo math::$pi * $r * $r;  

    echo "<br /><br />";  

    //這里我覺得 3.14 不夠精確,我把它設(shè)置的更精確。  

    math::$pi = 3.141592653589793;  

    echo "半徑是 $r 的面積是<br />";  

    echo math::$pi * $r * $r;  

    ?>

    類沒有創(chuàng)建,靜態(tài)屬性就可以直接使用。那靜態(tài)屬性在什么時(shí)候在內(nèi)存中被創(chuàng)建?

    在php中沒有看到相關(guān)的資料。

    引用java中的概念,來解釋應(yīng)該也具有通用性。靜態(tài)屬性和方法,在類被調(diào)用時(shí)創(chuàng)建。

    三,靜態(tài)方法

    靜態(tài)方法不需要所在類被實(shí)例化就可以直接使用。

    使用的方式是類名::靜態(tài)方法名

    繼續(xù)寫這個(gè)math類,用來進(jìn)行數(shù)學(xué)計(jì)算。

    設(shè)計(jì)一個(gè)方法用來算出其中的最大值。既然是數(shù)學(xué)運(yùn)算,也沒有必要去實(shí)例化這個(gè)類,如果這個(gè)方法可以拿過來就用就方便多了。

    這只是為了演示static方法而設(shè)計(jì)的這個(gè)類。在php提供了 max() 函數(shù)比較數(shù)值。

    <?php  

    class math 

    {  

     public static function max($num1, $num2) {  

      return $num1 > $num2 ? $num1 : $num2;  

     }   

    }  

    $a = 99;  

    $b = 88;  

    echo "顯示 $a 和 $b 中的最大值是";  

    echo "<br />";  

    echo math::max($a, $b);  

    echo "<br />"; 

    echo "<br />"; 

    echo "<br />";  

    $a = 99;  

    $b = 100;  

    echo "顯示 $a 和 $b 中的最大值是";  

    echo "<br />";  

    echo math::max($a,$b);  

    ?>

    靜態(tài)方法如何調(diào)用靜態(tài)方法

    第一個(gè)例子,一個(gè)靜態(tài)方法調(diào)用其它靜態(tài)方法時(shí),使用self:: 

    <?php  

    // 實(shí)現(xiàn)最大值比較的math類。  

    class math 

    {  

     public static function max($num1, $num2) {  

      return $num1 > $num2 ? $num1 : $num2;  

     }  

     public static function max3($num1, $num2, $num3) {  

      $num1 = self::max($num1, $num2);  

      $num2 = self::max($num2, $num3);  

      $num1 = self::max($num1, $num2);    

      return $num1;  

     }  

    }  

    $a = 99;  

    $b = 77;  

    $c = 88;  

    echo "顯示 $a $b $c 中的最大值是";  

    echo "<br />";  

    echo math::max3($a, $b, $c);  

    ?>

     靜態(tài)方法調(diào)用靜態(tài)屬性

    使用self:: 調(diào)用本類的靜態(tài)屬性。

    <?php  

    //  

    class circle 

    {  

     public static $pi = 3.14;  

     public static function circleacreage($r) {  

      return $r * $r * self::$pi;  

     }  

    }  

    $r = 3;  

    echo " 半徑 $r 的圓的面積是 " . circle::circleacreage($r);  

    ?>

    靜態(tài)方法不能調(diào)用非靜態(tài)屬性 。不能使用self::調(diào)用非靜態(tài)屬性。 

    <?php  

    // 這個(gè)方式是錯(cuò)誤的  

    class circle 

    {  

     public $pi = 3.14;  

     public static function circleacreage($r) {  

      return $r * $r * self::pi;  

     }  

    }  

    $r = 3;  

    echo " 半徑 $r 的圓的面積是 " . circle::circleacreage($r);  

    ?>

    也不能使用 $this 獲取非靜態(tài)屬性的值。

    靜態(tài)方法調(diào)用非靜態(tài)方法

    php5中,在靜態(tài)方法中不能使用 $this 標(biāo)識(shí)調(diào)用非靜態(tài)方法。

    <?php 

    // 實(shí)現(xiàn)最大值比較的math類。  

    class math 

    {   

     public function max($num1, $num2) {  

      echo "bad<br />";    

      return $num1 > $num2 ? $num1 : $num2;  

     }  

     public static function max3($num1, $num2, $num3) {  

      $num1 = $this->max($num1, $num2);  

      $num2 = $this->max($num2, $num3);  

      $num1 = $this->max($num1, $num2);    

      return $num1;  

     }  

    }  

    $a = 99;  

    $b = 77;  

    $c = 188;  

    echo "顯示 $a $b $c 中的最大值是";  

    echo "<br />";  

    echo math::max3($a, $b, $c); //同樣的這個(gè)會(huì)報(bào)錯(cuò) 

    ?>

    當(dāng)一個(gè)類中有非靜態(tài)方法被self:: 調(diào)用時(shí),系統(tǒng)會(huì)自動(dòng)將這個(gè)方法轉(zhuǎn)換為靜態(tài)方法。

    <?php  

    // 實(shí)現(xiàn)最大值比較的math類。  

    class math 

    {   

     public function max($num1, $num2) {   

      return $num1 > $num2 ? $num1 : $num2;  

     }  

     public static function max3($num1, $num2, $num3) {  

      $num1 = self::max($num1, $num2);  

      $num2 = self::max($num2, $num3);  

      $num1 = self::max($num1, $num2);    

      return $num1;  

     }  

    }  

    $a = 99;  

    $b = 77;  

    $c = 188;  

    echo "顯示 $a $b $c 中的最大值是";  

    echo "<br />";  

    echo math::max3($a, $b, $c);  

    ?>

    以上這篇淺析php靜態(tài)方法與非靜態(tài)方法的用法區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考

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

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

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