回答:
多分あなたは、variable_setがあらゆる種類の構造化データをデータベースに格納する魔法の方法であり、variable_getが再びそれを取得する方法であることを知りたいと思うかもしれません。残念ながら、そうではありません。
「永続変数」は、しばしば呼ばれるように、サイト管理者が値を変更するまで、リクエスト、ユーザー、セッションにわたって永続する必要がある比較的単純なキーと値のペアを意味します。良い例はサイト名です。
それはどのように機能するのでしょうか?
Drupalがブートストラップされると、すべての変数がキャッシュ(使用可能な場合)または変数テーブルから読み取られます。(正確なコードについては、variable_initializeを参照してください。)$conf
変数は、巨大な配列であるグローバル変数に格納されます。Drupalがこれを行うのは、変数が必要になるたびにデータベースクエリを実行するよりも効率的だからです。(これは、variable_setがデータの大きなblobに適さない理由でもあります。リクエストごとにロードされます!)
を使用するvariable_get('variable_name', 'default_value')
と、変数名は$ conf配列で検索されます。存在する場合、値が返されます。それ以外の場合は、デフォルト値が返されます。
最後に、ファミリーの3番目のメンバーであるvariable_delがあります。名前が示すように、これは変数テーブルから変数を削除します。この関数は、hook_uninstall実装でよく使用され、モジュールがアンインストールされるときに変数を削除します。
より複雑なカスタムデータ構造をデータベースに保存する方法を探している場合は、hook_schemaとdrupal_write_recordを確認するか、DrupalエンティティシステムとエンティティAPIを使用してください。
変数を設定するには、variable_set()を使用します。その後、variable_get()を使用してそれらを取得できます。Drupal APIサイトに慣れる必要があります。
変数は、保存されている場合、変数テーブルにあります。
あなたはできる:
variable_set()
、変数キャッシュが再構築されることです。そのため、通常、管理設定などのように、永続的で一貫性のあるデータ用に予約されています。または、別の言い方をすると、ページのビルド中に変更される関数間で静的変数の代わりに、または静的変数のように使用しないでください。