3

これは単なる好奇心からですが、関数のスコープ内で定義されたすべての変数 (排他的にこのスコープ内およびその関数内から) を照会し、それらを連想配列に入れる方法があるかどうか疑問に思っていました。拡張get_defined_vars機能のようなもの。

その理由は、プログラムの任意の時点で実行の「状態」を保存できると便利だからです。たとえば、デバッグ、ログ記録、例外の処理、または関数のスコープ全体を別の関数に渡すことさえできます。私が間違っていなければget_object_vars、オブジェクトでこれを行うことができると思います。

4

2 に答える 2

1

PHP.netのコメントより

// The very top of your php script
$vars = get_defined_vars();

// Now do your stuff
$foo = 'foo';
$bar = 'bar';

// Get all the variables defined in current scope
$vars = array_diff(get_defined_vars(),$vars);

echo '<pre>';
print_r($vars);
echo '</pre>';
于 2013-08-26T11:53:05.873 に答える