php面向對象——05 靜態方法、屬性&&常量

靜態方法、屬性


定義

使用static關鍵字定義;

聲明類屬性或方法爲靜態,即可以不實例化,直接訪問


注意:

1)靜態屬性,不可以通過實例化對象訪問;

2)靜態方法,可以;

3)靜態方法,不可以使用$this



使用方法

 :: 或  self::


具體如下所示:

  訪問位置           調用屬性           調用方法

類的內部/外部       類名::屬性名      類名::方法名

   內部           self::屬性名      self/類名::方法名



綜合例子

<?php

class MyClass
{
    // 靜態屬性
    public static $a = 'static';

    // 靜態方法
    public static function func1()
    {
        echo '靜態方法';

        // 類的內部調用靜態屬性
        echo MyClass::$a;
        echo self::$a;

        // 類的內部調用靜態方法
        MyClass::func2();
        self::func2();
    }

    // 試驗靜態方法調用另一個靜態方法
    public static function func2()
    {
        echo 'This is static function 2.';
    }
}

// 類的外部調用靜態屬性、方法
echo MyClass::$a;
MyClass::func1();

// 實例化後再調用
$me = new MyClass();

echo $me::$a;   // 調用成功
// echo $me ->a;   調用失敗
$me -> func1();  // 調用成功



常量

const可以把類中始終不變的值,定義爲常量。

常量的值,必須是一個定值。

調用方法,同static。


例子

class MyClass
{
    public static $a = 'abc';
    const NUM = 123;
}

echo MyClass::$a;
echo '<br/>';
echo MyClass::NUM;
echo '<br/>';

// 修改靜態屬性
MyClass::$a = 'def';
echo MyClass::$a;
echo '<br/>';

// 修改常量
//MyClass::NUM = 234;  賦值失敗
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章