変数名は、PHP の他のタグと同じルールに従います。有効な変数名は文字またはアンダースコアで始まり、その後に任意の数の文字、数字、またはアンダースコアが続きます。通常の正規表現では「[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*」と表現されます。
注: $this は特別な変数であり、値を割り当てることはできません。
変数はデフォルトで常に値によって割り当てられます。つまり、式の値が変数に代入される場合、元の式全体の値がターゲット変数に代入されます。これは、たとえば、ある変数の値が別の変数に割り当てられているときにその変数の値を変更しても、他の変数には影響を与えないことを意味します。このタイプの代入演算については、「式」の章を参照してください。
PHP は、変数に値を代入する別の方法、参照代入も提供します。これは、新しい変数が単に元の変数を参照する (つまり、「エイリアス」または「ポイントする」) ことを意味します。新しい変数を変更すると元の変数に影響し、その逆も同様です。
参照代入を使用するには、代入する変数 (ソース変数) の前に & 記号を追加するだけです。
1 つの重要な点を指摘しなければなりません。それは、名前を持つ変数のみが参照によって割り当てられるということです。
コードをコピー コードは次のとおりです:
$foo = 25;
$bar = &$foo; // 正当な割り当て
$bar = &(24 * 7); // 名前のない式を参照します
function test()
{
return 25;
$bar = &test(); // 変数を初期化する必要はありませんPHP では、変数を初期化することをお勧めします。初期化されていない変数には、その型のデフォルト値があります。ブール変数の場合は FALSE、整数および浮動小数点変数の場合は 0、文字列変数の場合は空の文字列、配列変数の場合は空の配列です。
初期化されていない変数のデフォルト値に依存すると、あるファイルを同じ変数名を持つ別のファイルに含める場合など、特定の状況では問題が発生する可能性があります。また、 register_globals をオンにすることは、重大なセキュリティ リスクになります。初期化されていない変数を使用すると E_NOTICE エラーが発生しますが、初期化されていない配列に要素を追加しても E_NOTICE エラーは発生しません。 isset() 言語構造を使用すると、変数が初期化されているかどうかを検出できます。
事前定義された変数
PHP には、多数の事前定義された変数が用意されています。多くの変数は実行中のサーバーのバージョンや設定、その他の要因に依存するため、詳細なドキュメントは利用できません。一部の事前定義変数は、PHP をコマンド ラインから実行すると有効になりません。