ホームページ > バックエンド開発 > PHPチュートリアル > PHP の定数と変数_PHP チュートリアル

PHP の定数と変数_PHP チュートリアル

WBOY
リリース: 2016-07-13 09:48:39
オリジナル
1479 人が閲覧しました

PHP の定数と変数

【定数】
define() 関数を使用して定数を定義できます。PHP 5.3.0 以降では、const キーワードを使用してクラス定義の外で定数を定義できます。定数を一度定義すると、変更したり定義を解除したりすることはできません。
定数にはスカラー データ (ブール値、整数、浮動小数点、文字列) のみを含めることができます。リソース定数を定義することは可能ですが、予期しない結果が生じる可能性があるため、これは避けてください。
定数の値は、名前を指定するだけで取得できます。変数とは異なり、定数の前に $ 記号を付ける必要はありません。定数名が動的である場合は、関数 constant() を使用して定数の値を取得することもできます。 get_define_constants() を使用して、定義されているすべての定数のリストを取得します。
特定の定数が定義されているかどうかだけを確認したい場合は、define() 関数を使用します。
定数と変数の違いは次のとおりです:
? 定数の前にドル記号 ($) はありません。 ? 定数は、代入ステートメントではなく、define() 関数を使用してのみ定義できます。 ? 定数は変数のスコープに関係なくどこでも定義してアクセスできます。 ? 定数を一度定義すると、再定義したり定義を解除したりすることはできません。 ? 定数の値はスカラー値のみです。
事前定義された定数

多くの定数はさまざまな拡張ライブラリによって定義されており、これらの拡張ライブラリが動的にロードされるかコンパイル時に組み込まれるときにのみ表示されます。これらの特別な定数は、次のように大文字と小文字が区別されません:


名前 説明 には常に絶対パス (またはシンボリック リンクの場合は解決された絶対パス) が含まれますが、それより前のバージョンには相対パスが含まれる場合がありました。
ファイル内の現在の行番号。 __LINE__
ファイルのフルパスとファイル名。インクルードされたファイル内で使用された場合、インクルードされたファイルの名前を返します。 PHP 4.0.2 以降、__FILE__ __FILE__
ファイルが配置されているディレクトリ。インクルードされたファイル内で使用された場合、インクルードされたファイルが配置されているディレクトリを返します。 __DIR__dirname(__FILE__)と同等です。ルート ディレクトリでない限り、ディレクトリ名には末尾のスラッシュは含まれません。 (PHP 5.3.0 の新機能) =
関数名 (PHP 4.3.0 で新しく追加されました)。 PHP 5 以降、この定数は定義されたとおりの関数名を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。 __FUNCTION__
クラスの名前 (PHP 4.3.0 の新機能)。 PHP 5 以降、この定数は定義されたときのクラスの名前を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。クラス名には、それが宣言されているスコープが含まれます (例: __CLASS__FooBar)。 PHP 5.4 以降、__CLASS__ はトレイトに対しても機能することに注意してください。特性メソッド内で使用される場合、__CLASS__ は特性メソッドを呼び出すクラスの名前になります。
トレイト名 (PHP 5.4.0 の新機能)。 PHP 5.4 以降、この定数は定義されたとおりの特性の名前を返します (大文字と小文字が区別されます)。トレイト名には、それが宣言されるスコープが含まれます (例: __TRAIT__FooBar)。
クラスのメソッド名 (PHP 5.0.0 で新しく追加されました)。定義されたとおりのメソッド名を返します (大文字と小文字が区別されます)。 __METHOD__
現在の名前空間の名前 (大文字と小文字が区別されます)。この定数はコンパイル時に定義されます (PHP 5.3.0 の新機能)。 __NAMESPACE__ 【可変】
PHP の変数は、ドル記号とそれに続く変数名で表されます。変数名では大文字と小文字が区別されます。 変数名は、PHP の他のタグと同じルールに従います。有効な変数名は文字またはアンダースコアで始まり、その後に任意の数の文字、数字、またはアンダースコアが続きます。
デフォルトでは、変数は常に値によって割り当てられます。つまり、式の値が変数に代入される場合、元の式全体の値がターゲット変数に代入されます。これは、たとえば、ある変数の値が別の変数に割り当てられているときにその変数の値を変更しても、他の変数には影響を与えないことを意味します。 PHP では、変数に値を代入する別の方法である参照代入も提供しています。これは、新しい変数が単に元の変数を参照する (つまり、「エイリアス」または「ポイントする」) ことを意味します。新しい変数を変更すると元の変数に影響し、その逆も同様です。参照代入を使用するには、代入される変数 (ソース変数) の前に & 記号を追加するだけです。
事前定義された変数
PHP 4.2.0 以降のバージョンでは、PHP ディレクティブ register_globals のデフォルト値は off です。これは PHP に対する大きな変更です。 register_globals を off に設定すると、事前定義された変数セットのグローバルな可用性に影響します。たとえば、DOCUMENT_ROOT の値を取得するには、$DOCUMENT_ROOT の代わりに $_SERVER['DOCUMENT_ROOT'] を使用する必要があります。別の例として、URL http://www から $id の代わりに $_GET['id'] を使用します。 .example.com/test .php?id=3 の ID 値を取得するか、$HOME の代わりに $_ENV['HOME'] を使用して環境変数 HOME の値を取得します。
?スーパーグローバル変数 — スーパーグローバル変数は、すべてのスコープで常に使用できる組み込み変数です
?$GLOBALS — グローバル スコープで使用可能なすべての変数を参照します
?$_SERVER — サーバーと実行環境の情報
?$_GET — HTTP GET 変数
?$_POST — HTTP POST 変数
?$_FILES — HTTP ファイルアップロード変数
?$_REQUEST — HTTP リクエスト変数
?$_SESSION — セッション変数
?$_ENV — 環境変数
?$_COOKIE — HTTP Cookie
?$php_errormsg — 前のエラー メッセージ
?$HTTP_RAW_POST_DATA — 生の POST データ
?$http_response_header — HTTP 応答ヘッダー
?$argc — スクリプトに渡される引数の数
?$argv — スクリプトに渡される引数の配列

グローバルキーワード
PHP のグローバル変数は C 言語とは少し異なります。C 言語では、ローカル変数によってオーバーライドされない限り、グローバル変数は関数内で自動的に有効になります。これにより問題が発生する可能性があり、誰かが誤ってグローバル変数を変更してしまう可能性があります。 PHP のグローバル変数は、関数で使用する場合、または特別な PHP カスタム $GLOBALS 配列を使用する場合にグローバルとして宣言する必要があります。 $GLOBALS は連想配列であり、各変数は要素であり、キー名は変数名に対応し、値は変数の内容に対応します。 $GLOBALS はスーパーグローバル変数であるため、$GLOBALS はグローバル スコープ内に存在します。
静的変数
変数スコープのもう 1 つの重要な機能は、静的変数です。
可変変数
変更可能な変数名を使用すると便利な場合があります。つまり、変数の変数名を動的に設定して使用することができます。通常の変数は宣言によって設定されます。
可変変数を配列で使用するには、あいまいさを解決する必要があります。これは、$$a[1] を記述するときに、パーサーは $a[1] を変数として必要とするか、または $$a を変数として必要としてインデックス [1] 値を持つ変数を抽出するかを知る必要があります。この問題を解決する構文は、最初のケースには ${$a[1]} を使用し、2 番目のケースには ${$a}[1] を使用します。

リーリー







www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1022400.html技術記事 PHP の定数と変数 [定数] PHP 5.3.0 以降では、define() 関数を使用して、クラス定義の外で定数を定義できます。定数が決まれば...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート