亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php中靜態類與靜態變量用法的區別分析

2024-05-04 23:30:09
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php中靜態類與靜態變量用法的區別,以實例形式較為詳細的分析了php中靜態類與靜態變量的定義、功能及使用技巧,需要的朋友可以參考下
 

本文實例分析了php中靜態類與靜態變量用法的區別。分享給大家供大家參考。具體分析如下:

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

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

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

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

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

① 如果是靜態方法,沒有特殊條件.

② 如果是非靜態方法,需要改方法中沒有使用$this,即沒有調用非靜態的變量/方法,當然,調用靜態的變量/方法沒有問題.

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

1. 使用$object->… ,需要執行構造函數創建對象.

2. 使用class::… 調用靜態方法/變量,不需要執行構造函數創建對象.

3. 使用class::… 調用非靜態方法/變量,也不需要執行構造函數創建對象.

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

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

例子,代碼如下:

復制代碼代碼如下:
<?php 
Class Person{ 
    // 定義靜態成員屬性 
    public static $country = "中國"; 
    // 定義靜態成員方法 
    public static function myCountry() { 
        // 內部訪問靜態成員屬性 
        echo "我是".self::$country."人<br />"; 
    } 

class Student extends Person { 
    function study() { 
        echo "我是". parent::$country."人<br />"; 
    } 

// 輸出成員屬性值 
echo Person::$country."<br />";  // 輸出:中國 
$p1 = new Person(); 
//echo $p1->country;   // 錯誤寫法 
// 訪問靜態成員方法 
Person::myCountry();   // 輸出:我是中國人 
// 靜態方法也可通過對象訪問: 
$p1->myCountry(); 
 
// 子類中輸出成員屬性值 
echo Student::$country."<br />"; // 輸出:中國 
$t1 = new Student(); 
$t1->study();    // 輸出:我是中國人 
?>

運行該例子,輸出:
中國 
我是中國人 
我是中國人 
中國 
我是中國人

 

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

復制代碼代碼如下:
slef:: $country

 

slef:: myCountry()

 

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

復制代碼代碼如下:
parent:: $country

 

parent:: myCountry()

 

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

復制代碼代碼如下:
Person::$country

 

Person::myCountry()

Student::$country

 

但靜態方法也可以通過普通對象的方式訪問.
例子,聲明靜態變量,代碼如下:

復制代碼代碼如下:
<?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; 
   } 
?>

例子,使用靜態變量的例子,代碼如下:
復制代碼代碼如下:
<?PHP 
   function Test() 
   { 
   static $w3sky = 0; 
   echo $w3sky; 
   $w3sky++; 
   } 
?>

現在,每次調用 Test() 函數都會輸出 $w3sky 的值并加一.

 

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

例子,靜態變量與遞歸函數,代碼如下:

復制代碼代碼如下:
<?PHP 
   function Test() 
   { 
   static $count = 0; 
    
   $count++; 
   echo $count; 
   if ($count < 10) { 
   Test(); 
   } 
   $count--; 
   } 
?>

注:靜態變量可以按照上面的例子聲明,如果在聲明中用表達式的結果對其賦值會導致解析錯誤.

 

希望本文所述對大家的php程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人激情小说| 久热99视频在线观看| 91精品国产91久久久久久不卡| 亚洲在线免费观看| 中文字幕国产精品| 亚洲国产另类久久精品| 国产福利视频一区| 亲爱的老师9免费观看全集电视剧| 91精品一区二区| 精品视频在线播放免| 91精品视频免费看| 成人亚洲综合色就1024| 7777精品久久久久久| 国产小视频91| 精品国产欧美成人夜夜嗨| 国产欧美一区二区三区久久| 正在播放欧美一区| 亚洲tv在线观看| 欧美高清自拍一区| 国产91网红主播在线观看| 亚洲乱码国产乱码精品精| 欧美一级电影在线| 国产激情综合五月久久| 精品久久久国产精品999| 欧美日本精品在线| 91麻豆国产语对白在线观看| 91av在线不卡| 亚洲国内精品在线| 精品一区二区三区四区在线| 国产欧美日韩精品在线观看| 国产精品久久久久影院日本| www.欧美精品| 日韩精品中文字幕视频在线| 91网站免费观看| 亚洲女人天堂av| 亚洲级视频在线观看免费1级| 精品高清一区二区三区| 欧美日韩成人精品| 亚洲黄色在线观看| 亚洲女人初尝黑人巨大| 亚洲最大的成人网| 亚洲视频在线观看免费| 日韩一中文字幕| 欧美日韩另类在线| 亚洲天堂网站在线观看视频| 日韩av毛片网| 亚洲图片制服诱惑| 欧美高清视频一区二区| 久久久久久噜噜噜久久久精品| 欧美日韩福利在线观看| 亚洲一区二区三区四区在线播放| 亚洲欧洲免费视频| 欧美一区二区影院| 97视频色精品| 国内精品美女av在线播放| 亚洲高清色综合| 国产91色在线|免| 久久久久久久爱| 国产精品嫩草影院一区二区| 一本色道久久综合狠狠躁篇的优点| 精品国产欧美一区二区三区成人| 日韩在线观看精品| 欧美激情久久久久久| 国产精品99蜜臀久久不卡二区| 国产做受69高潮| 国产精品美女免费看| 国产精品久久一区| 亚洲视频在线播放| 2019中文字幕全在线观看| 欧美午夜xxx| 国产在线久久久| 欧美成人小视频| 欧美乱大交做爰xxxⅹ性3| zzijzzij亚洲日本成熟少妇| 国产精品久久久久久久app| 久久精视频免费在线久久完整在线看| 欧美国产视频一区二区| 永久免费看mv网站入口亚洲| 久久久伊人日本| 美女国内精品自产拍在线播放| 国产精品啪视频| 欧美日韩国产中文精品字幕自在自线| www.欧美视频| 精品福利在线看| 日韩欧美高清视频| 国产成人欧美在线观看| 日韩高清av在线| 久久人人看视频| 国产精品美女在线| 色偷偷91综合久久噜噜| 久久精品久久久久电影| 成人欧美一区二区三区在线| 欧美性视频精品| 日本成人黄色片| 国产精品美女久久| 性欧美亚洲xxxx乳在线观看| 国产精品成人免费视频| 欧美大片网站在线观看| 欧美乱妇高清无乱码| 国产精品主播视频| 亚洲精品视频在线观看视频| 亚洲国产成人av在线| 久久好看免费视频| 日韩精品999| 成人写真福利网| 国产拍精品一二三| 久久在精品线影院精品国产| 中文字幕视频在线免费欧美日韩综合在线看| 欧美xxxx14xxxxx性爽| 亚洲 日韩 国产第一| 久久久精品视频在线观看| 国内精品久久久久| 国产一区二区三区18| 日韩欧美黄色动漫| 成人中文字幕在线观看| 久久成人精品电影| 亚洲在线免费观看| 中国人与牲禽动交精品| 国内精品久久久久久| 久久精品国产91精品亚洲| 亚洲精品国产精品乱码不99按摩| 国产精品国产三级国产aⅴ浪潮| 黑丝美女久久久| 91国产精品91| 国产精品女视频| 在线国产精品视频| 欧美肥老妇视频| 成人福利视频网| 久久精品视频导航| 欧美激情视频给我| 欧美高清电影在线看| 亚洲精品国产精品国自产在线| 日韩精品视频免费在线观看| 日韩一区视频在线| 色黄久久久久久| 亚洲色图av在线| 精品美女久久久久久免费| 久久久久国产精品www| 成人黄色片网站| 国产亚洲精品va在线观看| 国产精品视频在线播放| 欧美成人剧情片在线观看| 精品国产自在精品国产浪潮| 国产精品十八以下禁看| 日韩在线中文字幕| 91九色蝌蚪国产| 国产精品你懂得| 日韩久久免费视频| 国产福利精品av综合导导航| 91精品久久久久久久久久久久久久| 亚洲精品美女网站| 国产精品1234| 日韩有码在线观看| 国产精品99蜜臀久久不卡二区| 亚洲美女在线视频| 精品国产电影一区| 欧美性视频在线| 国产成人在线亚洲欧美| 日本国产欧美一区二区三区| 欧美xxxx14xxxxx性爽| 97国产一区二区精品久久呦| 正在播放欧美视频| 亚洲成人亚洲激情| 日韩欧美在线第一页|