Drupal 6を使用していますが、variable_set()
を使用してvariable_get()
で設定した変数のセットを取得する際に問題が発生しています。 dpr(get_defined_vars())
を使用して定義を確認しますが、変数は表示されません。配列_$form
_および_$form_state
_のみが表示されます(これはhook_submit()
内にあります) 。
get_defined_vars()
は、variable_get()
/variable_set()
を介して定義されたすべての変数を表示しますか?それらすべてのリストをご覧ください。それらが正しく設定されているかどうかを確認し、それらを取得できない理由をトラブルシューティングするだけです。
get_defined_vars はPHP関数であり、Drupal関数ではありません。基本的に、スコープ内のすべての変数を表示します。
variable_set によって設定されたDrupal変数は、自動的にスコープ内にありません。
変数はglobal $conf;
に格納されていますが、非変数もここに格納されているかどうかは覚えていません。
Devel Module をインストールすると、変数を表示および編集するためのページがあります。
編集:
好奇心が湧きました。 Develモジュールの変数エディターは{variable}
ではなくglobal $conf;
テーブルにクエリを実行して、使用可能なすべての変数のフォームを構築します。これにより、それが適切な方法であることが示唆されます。
variable_set()
で設定するものは、「Drupal変数」または「永続変数」と呼ばれます。 PHP=変数ではなく、get_defined_vars()
はそれらを返しません。
ブートストラップ中に、「variables」テーブルの内容がグローバル変数$conf
にコピーされます。これには、文字列のオーバーライドなど、settings.phpで設定された値も含まれます。
$conf['locale_custom_strings_en'] = array(
'forum' => 'Discussion board',
'@count min' => '@count minutes',
);
Drupal変数が設定されていることを確認したい場合は、グローバル変数$conf
を使用できますが、デバッグ目的でのみ使用することをお勧めします。テストサイト外で公に配布または使用する。