@ PHP

OOP:クラス定数

クラス定数は、メソッドやプロパティと同じように、クラス内に定義することができる定数です。

クラス定数は const キーワードを使って定義します。

定数名に $ を付ける必要はありません。また、定数に設定することができるのはスカラー値のみです。式や配列、リソースを定数に使うことはできません。

クラス定数が主に使われるのは、そのクラスの初期化時に使われる設定フラグやオプションです。

Employee クラスに、雇用形態を表す定数を定義してみます。

root
 ├── Person.php // Person クラスファイル
 ├── Employee.php // Employee クラスファイル
 └── const.php // 実行ファイル

Employee.php

<?php

class Employee
{

    const PARTTIME = 0x01;  // アルバイト

    const REGULAR = 0x02;  // 正社員

    const CONTRACT = 0x03;  // 契約社員

    private static $company = 'インターネーション';

    public static function getCompany()
    {
        return self::$company;
    }

}

Person.php

<?php

class Person
{

    public $firstName;

    public $lastName;

    public function __construct(string $firstName, string $lastName)
    {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public function show()
    {
        print "氏名:{$this->lastName}{$this->firstName}";
    }

}

const.php

<?php
require_once('Person.php');
require_once('Employee.php');

$p = new Person('太郎', '山田');

$p->show();

print '<hr>';
print '社名:'.Employee::getCompany();
print '<br>';
print '雇用形態:'.Employee::REGULAR;

クラス定数には ::(スコープ定義演算子)を使ってアクセスします。

PHP: オブジェクト定数 – Manual