PHP では、すべての変数は「シンボル テーブル」の HastTable 構造に格納され、シンボルのスコープはアクティブなシンボル テーブルに関連付けられます。したがって、一度にアクティブなシンボル テーブルは 1 つだけです。
現在アクティブなシンボル テーブルを取得したい場合は、get_define_vars メソッドを通じて取得できます。
get_define_vars // 定義されたすべての変数の配列を返します
値に基づいて変数名を検索しますが、同じ値を持つ変数が存在する可能性があることに注意してください。
そのため、まず現在の変数の値を一時変数に保存し、次に変数の名前を見つけるために元の変数に一意の値を割り当てます。名前が見つかったら、一時変数の値を元の変数に再割り当てします。変数。
例 1:
例2: 関数で定義された変数名を取得する
function vname(&$var, $scope=false, $prefix='unique', $suffix='value')
{
if($scope) $vals = $scope;
else $vals = $GLOBALS;
$old = $var;
$var = $new = $prefix.rand().$suffix;
$vname = FALSE;
foreach($vals as $key => $val) {
if($val === $new) $vname = $key;
}
$var = $old;
return $vname;
}
echo "\$変数名=".vname($変数名);
?>
出力結果:$変数名=変数名
1. 上記のメソッドは include("A.php") または require("A.php")
2. URL を通じて変数をアタッチし、B.php で $_GET['変数名'] を使用して取得します。
3. もっと冷酷に: この変数をセッションまたはクッキーに設定します