6

私は誰かにPHPで変数変数変数を作成する方法を示していました(私は決してそれらを使用することをお勧めしません、それは恐ろしい習慣であり、実際の製品コードで変数変数変数を使用する場合は悪い人です)、そして彼らはドルかどうか尋ねましたこの場合、記号は間接参照演算子として機能しました。

それは実際には他の変数への参照を作成しないので、私はそれがderefopであるとは実際には見ていません。変数変数のドキュメントには、参照についてもまったく触れられていません。

誰が正しいの?変数変数が参照を作成しているとは思わないため、ドル記号は間接参照演算子ではありません。

これがあなたの見る喜び(または内容を与えられた苦痛)のためのいくつかのサンプルコードです:

<?php

$a = 'c';
$b = 'a';
$c = 'hello';

echo($$$b); //hello
4

2 に答える 2

4

変数変数のドル記号は、間接参照演算子と見なされますか?

いいえ。PHPには間接参照演算子はありません。

変数変数は、間接参照として考えるべきではなく、文字列を介してシンボルツリーにアクセスすることと考えるべきです。例えば:

$bar = 1;
echo ${'bar'};

文字列リテラルの代わりに変数を使用して、これを動的に実行できます。

$bar = 1;
$foo = 'bar';
echo ${$foo};

PHP構文では中括弧を削除できますが、それでも文字列を介してシンボルテーブルにアクセスする必要があります。参照/間接参照は含まれません。

于 2011-09-06T22:04:09.720 に答える
0

いいえ、それは何かをDE参照していません....どちらかといえば、それは保存された変数名の保存された値を参照するために保存された変数名の参照を参照しています....一種の二重参照または参照の参照..... de-refは、ある変数が別の変数のサブセットの一部であることを意味します。

于 2014-10-29T19:22:38.150 に答える