php学習ノート5-定数

1923 ワード

[php公式ドキュメント参照]
1.構文はdefine()関数で定数を定義できます.PHPで5.3.0以降、constキーワードを使用してクラス定義の外部定義定数を定義できます.定数が定義されると、定義を変更したりキャンセルしたりすることはできません.定数には、スカラーデータ(boolean、integer、float、string)しか含まれません.resource定数は定義できますが、予想できない結果をもたらすため、できるだけ避けてください.変数とは異なり、定数の前に$記号を付けるべきではない名前を指定することで定数の値を簡単に取得できます.定数名がダイナミックな場合は、関数constant()を使用して定数の値を取得することもできます.get_でdefined_constants()は、定義されたすべての定数リストを取得できます.注:定数と(グローバル)変数は、異なる名前空間にあります.これは、例えば、TRUEと$TRUEが異なることを意味する.未定義の定数が使用されている場合、PHPは、文字列で呼び出されるように、その定数自体の名前が望ましいと仮定する(CONSTANTは「CONSTANT」に対応する).E_が発行されますNOTICEレベルのエラー.定数が定義されているかどうかを確認するには、defined()関数を使用します.定数と変数には、■定数の前にドル記号($)がありません.■定数はdefine()関数でのみ定義でき、付与文では定義できません.■定数は、変数の役割ドメインを無視して、どこでも定義およびアクセスできます.■定数は一度定義すると再定義されたり、定義をキャンセルされたりすることはできません.■定数の値はスカラーのみです.定数の定義
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; //    "Constant"           

//       PHP 5.3.0        
const CONSTANT = 'Hello World';
echo CONSTANT;
?>
PHPは、実行中の任意のスクリプトに大量の事前定義定数を提供します.しかし、多くの定数は異なる拡張ライブラリによって定義されており、これらの拡張ライブラリがロードされたときにのみ表示されるか、動的にロードされた後、コンパイル時にすでに含まれています. 
2.マジック定数
7つのマジック定数があり、それらの値はコード内の位置が変化するにつれて変化します.例えば_LINE__ の値は、スクリプト内のローに依存して決定されます.これらの特殊な定数は、大文字と小文字を区別しません.次のようにします.
(1)__LINE__ファイル内の現在の行番号. 
(2)__FILE__ファイルのフルパスとファイル名.含まれるファイルに使用すると、含まれるファイル名が返されます.PHP 4.0より.2から、_FILE__常に絶対パス(シンボル接続の場合は解析後の絶対パス)が含まれていますが、その前のバージョンには相対パスが含まれている場合があります. 
(3)__DIR__ファイルが存在するディレクトリ.含まれるファイルに使用すると、含まれるファイルがあるディレクトリが返されます.これはdirname(_FILE_)に等しい.ルートディレクトリでない限り、ディレクトリの名前には末尾のスラッシュは含まれません.
(4)__FUNCTION__PHP 5からこの定数は、この関数が定義されたときの名前(大文字と小文字を区別)を返します.PHP 4では、この値は常に小文字です. 
(5)__CLASS__PHP 5からこの定数はクラスが定義されたときの名前(大文字と小文字を区別)を返します.PHP 4では、この値は常に小文字です. 
(6)__METHOD__クラスのメソッド名(PHP 5.0.0新規追加).メソッドが定義されたときの名前(大文字と小文字を区別)を返します. 
(7)__NAMESPACE__現在のネーミングスペースの名前(大文字と小文字が敏感).この定数はコンパイル時に定義されている(PHP 5.3.0新規)