ホームページ  >  記事  >  バックエンド開発  >  PHPの変数変数(詳細コード説明)

PHPの変数変数(詳細コード説明)

烟雨青岚
烟雨青岚転載
2020-06-13 17:03:2718384ブラウズ

PHPの変数変数(詳細コード説明)

#php の変数

#変数変数名を使用すると便利な場合があります。つまり、

変数の変数名を動的に設定して使用することができます。通常の変数は宣言によって設定されます。例:

<?php
$a = &#39;hello&#39;;
?>

可変変数は、通常の変数の値を可変変数の変数名として取得します。 上記の例では、hello に 2 つのドル記号 ($) が使用されていますが、変数変数として使用できます。

例 1:

<?php
$$a = &#39;world&#39;;
?>

この時点では、両方の変数が定義されています: $a の内容は "hello"、$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 が配列単位の場合も同様です。

中括弧を使用して属性名を明確に区切ることもできます。プロパティが配列内にある場合、プロパティ名に複数の部分が含まれている場合、またはプロパティ名に不正な文字 (json_decode() や SimpleXML など) が含まれている場合に最も役立ちます。

例:

<?php
class foo {
    var $bar = &#39;I am bar.&#39;;
    var $arr = array(&#39;I am A.&#39;, &#39;I am B.&#39;, &#39;I am C.&#39;);
    var $r   = &#39;I am r.&#39;;
}
$foo = new foo();
$bar = &#39;bar&#39;;
$baz = array(&#39;foo&#39;, &#39;bar&#39;, &#39;baz&#39;, &#39;quux&#39;);
echo $foo->$bar . "
";
echo $foo->$baz[1] . "
";
$start = &#39;b&#39;;
$end   = &#39;ar&#39;;
echo $foo->{$start . $end} . "
";
$arr = &#39;arr&#39;;
echo $foo->$arr[1] . "
";
echo $foo->{$arr}[1] . "
";
?>

上記のルーチンは

出力:

I am bar.
I am bar.
I am bar.
I am r.
I am B.

読んでいただきありがとうございます。理解していただければ幸いですそれは可変変数です。

この記事は以下から転載しています: https://www.cnblogs.com/ryanzheng/p/9133381.html

推奨チュートリアル: "php チュートリアル>>

以上がPHPの変数変数(詳細コード説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51dev.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。