定数

クラス定数へのアクセス

クラス名::定数でアクセスする。同クラスからは、self::定数でアクセスする。

<?php
class MyClass
{
    const CONSTANT = 'constant value';

    function showConstant()
    {
        echo  self::CONSTANT . "\n"; // 同クラスからのアクセス
    }
}

echo MyClass::CONSTANT . "\n";
?>

cakePHPにおいて、他クラスの定数にアクセスする際の実装例。

<?php
use App\...\OtherClass;

class MyClass
{
    function __construct()
    {
        $this->OtherClass = TableRegistry::get('OtherClass'); // テーブル
        $this->OtherClass = new OtherClass(); // その他 サービスクラスなど
    }

    function showConstant()
    {
        echo  $this->OtherClass::CONSTANT . "\n";
    }
}
?>

クラス定数のアクセス範囲

PHP7.1以降、クラス定数のアクセス範囲を以下の記法で指定できる。

<?php
class Foo {
    public const BAR = 'bar';
    private const BAZ = 'baz';
}
?>

クラス定数のデフォルトのアクセス範囲はpublic。

define

define(定数名, 値)で定数を定義できる。

<?php
define("CONSTANT", "Hello world.");
?>