変数 変数名 は、プログラミングに大きな利便性をもたらす場合があります。つまり、変数名に動的に名前を付けて使用することができます。通常、変数は次のステートメントを通じて名前が付けられます:
<?php $a = 'hello'; ?>
変数 variablename は、変数の値を変数の名前として使用することを指します。上記の例では、以下のように 2 つの $ 記号を使用して、変数の名前に hello を設定できます。
<?php $$a = 'world'; ?>
上記の 2 つのステートメントにより、「hello」を含む変数 $a と「world」を含む変数 $hello の 2 つの変数が定義されます。 したがって、次の言語の出力:
<?php echo "$a ${$a}"; ?>
は、次のステートメントの出力とまったく同じです:
<?php echo "$a $hello"; ?>
両方とも、hello world を出力します。
配列の可変変数名を使用するには、あいまいさの問題を解決する必要があります。つまり、$$a[1] を記述する場合、パーサーは $a[1] を変数として扱うことを意味するのか、それとも $$a [1] がこの変数を参照することを意味するのかを理解する必要があります。索引。このあいまいさを解決するための構文は、最初のケースでは ${$a[1]} を使用し、2 番目のケースでは ${$a}[1] を使用します。
クラスプロパティには、変更可能なプロパティ名を介してアクセスすることもできます。変更可能なプロパティ名は、呼び出しが行われた変数のアクセス スコープから取得されます。たとえば、式が$foo->$barのような場合、ランタイムはローカルの変数スコープで変数$barを検索し、その値が$のメンバーとして使用されます。 foo オブジェクトのプロパティ名。 $bar が配列の場合にも使用できます。
例 1 変数変数名
<?php class foo { var $bar = 'I am bar.'; } $foo = new foo(); $bar = 'bar'; $baz = array('foo', 'bar', 'baz', 'quux'); echo $foo->$bar . "n"; echo $foo->$baz[1] . "n"; ?>
上記の例は次の結果を出力します:
I am bar. I am bar.
警告
変数変数名はPHP関数やクラス内のスーパーグローバル配列変数では使用できないことに注意してください。変数 $this も、動的に名前を付けることができない特殊な変数です。
以上がPHPにおける変数変数名の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。