天天看點

【PHP7 面向對象 筆記三】類常量

一、定義

  可以把在類中始終保持不變的值定義為常量。在定義和使用常量的時候不需要使用

$

符号。常量的值必須是一個定值,不能是變量,類屬性,數字運算的結果或函數調用。

二、文法

const constant = '常量';
           

三、調用方法

1) 類内部
// 方法一:
self::常量名;
// 方法二:
類名::常量名;
           

舉例:

// 方法一:self::常量名稱
self::WINNER;
// 方法二:類名::常量名
Chu::WINNER;
           

完整代碼:

class Animal
{
    // 可以寫所需要的代碼
}

class Chu extends Animal
{
    // 定義一個常量
    const WINNER = '今天是9月8日';

    public function getDay()
    {
        echo Chu::WINNER; // 可以 return Chu::WINNER;(由于一個方法中隻能有一個 return,是以此處用 echo 來測試)
        echo '<hr>';
        return self::WINNER;
    }
}

$obj = new Chu();
var_dump($obj->getDay());
           

運作結果:

【PHP7 面向對象 筆記三】類常量
2) 類外部
// 方法一:
類名::常量名;
// 方法二:
對象名::常量名;
           

舉例:

// 方法一:類名::常量名
Chu::WINNER;
// 方法二:對象名::常量名
$obj::WINNER;
           

完整代碼:

class Animal
{
    // 可以寫所需要的代碼
}

class Chu extends Animal
{
    const WINNER = '今天是9月8日';
}

$obj = new Chu();
echo Chu::WINNER;
           

運作結果:

【PHP7 面向對象 筆記三】類常量

四、使用

define

定義類常量

舉例1:在類中定義類常量

class Animal
{
    // 代碼塊
}

class Chu extends Animal
{
    const WINNER = '今天是9月8日';
    define('W', '今天是2018年9月8日');

    public function get()
    {
        echo Chu::W;
        return self::WINNER;
    }
}

$obj = new Chu();
var_dump($obj->get());
           

運作結果:

【PHP7 面向對象 筆記三】類常量

注:無法在類中用

define

直接定義類常量,隻能在類的方法中定義,且使用的是定義時的預設值

舉例2:在類的方法定義類常量

class Animal
{
    // 代碼塊
}

class Chu extends Animal
{
    public function get()
    {
        define('W', '今天是2018年9月8日');
        return W;
    }
}

$obj = new Chu();
var_dump($obj->get());
           

運作結果:

【PHP7 面向對象 筆記三】類常量

總結:

1)在類中,隻能使用

const

來定義類常量;
2) 在類内,使用類常量,用

self::常量名

或者

類名::常量名

;
3)在類外,使用類常量,用

類名::常量名

或者

對象名::常量名

;
4)

self

用來找到目前變量所在的類的名稱.

繼續閱讀