php中靜態屬性靜態方法的用法

來源:互聯網
上載者:User

標籤:des   blog   使用   io   ar   div   cti   log   on   

static關鍵字用來修飾屬性、方法,稱這些屬性、方法為靜態屬性、靜態方法。static關鍵字聲明一個屬性或方法是和類相關的,而不是和類的某個特定的執行個體相關,因此,這類屬性或方法也稱為“類屬性”或“類方法”。如果存取控制許可權允許,可不必建立該類對象而直接使用類名加兩個冒號“::”調用。static關鍵字可以用來修飾變數、方法。不需要經過執行個體化,就可以直接存取類中static的屬性和static的方法。static 的屬性和方法,只能訪問static的屬性和方法,不能類訪問非靜態屬性和方法。因為靜態屬性和方法被建立時,可能還沒有任何這個類的執行個體可以被調用。static的屬性,在記憶體中只有一份,使用self:: 關鍵字訪問當前類的靜態成員或方法。<?php//非靜態方法調用靜態屬性class General_Call_Static_Property{    private static $count=0;    public function __construct(){        self::$count=self::$count+1; //非靜態方法不需要執行個體化就可以使用靜態屬性,在類還沒有建立時就可以直接使用。使用方式是self::靜態屬性名    }    public function print_content(){        return self::$count;    }      public function __destruct() {            self::$count=self::$count - 1;        }  }$obj1=new General_Call_Static_Property();$obj2=new General_Call_Static_Property();$obj3=new General_Call_Static_Property();echo $obj1->print_content().‘<br />‘;//3echo $obj2->print_content().‘<br />‘;//3unset($obj2);echo $obj3->print_content().‘<br />‘;//2//非靜態方法調用靜態方法class General_Call_Static_Method{    public static function compare($num1,$num2){        return $num1>$num2?$num1:$num2;    }    public function result($num1,$num2,$num3){        $first=self::compare($num1,$num2);//非靜態方法不需要執行個體化就可以使用靜態屬性,使用方式是self::靜態方法名        $second=self::compare($num2,$num3);        $max=self::compare($firsrt,$second);        return $max;    }}$show=new General_Call_Static_Method();$a=33;$b=16;$c=70;echo ‘顯示$a,$b,$c的最大值:‘.$show->result($a,$b,$c).‘<br />‘;//70//直接調用靜態屬性class Call_Property{    public static $p=3.14;}$r=5;echo ‘半徑為r的圓面積:‘.Call_Property::$p *$r *$r.‘<br />‘; //78.5  靜態屬性不需要執行個體化就可以直接使用,在類還沒有建立時就可以直接使用。使用方式是類名::靜態屬性名//直接調用靜態方法class Call_Method{     public static function Max($num1,$num2){        return $num1>$num2?$num1:$num2;    }}echo ‘比較兩個數的最大值:‘.Call_Method::Max(49,23).‘<br />‘;//49 靜態方法不需要所在類被執行個體化就可以直接使用。使用方式是類名::靜態方法名$a=6;$b=14;echo ‘比較$a和$b大小:‘.Call_Method::Max($a,$b).‘<br />‘;//14//靜態方法調用靜態方法class Call_Static_Method{    private static $property=10;    public static function count(){        echo self::$property=self::$property+1; //靜態方法調用靜態變數使用方式是self::靜態變數名    }    public static function result(){        return self::count();    //靜態方法調用靜態方法使用方式是self::靜態方法名    }}Call_Static_Method::result();//11?>

  

php中靜態屬性靜態方法的用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.