回答:
hide()
とunset
()は同じではありません。hide()はDrupal関数であり、unset()はraw php関数です。
unset()
単に変数を破棄します。例として、
<?php
$name = 'Drupal';
unset($name);
print $name; // this will result an error as $name is no longer set. `isset()` will return FALSE.
hide()
変数を破棄しません。一部のレンダリング可能な配列が既にレンダリングされているので、再度レンダリングされないようにマークを付けると便利です。
それは単に与えられた引数#printed
をTRUEに追加/置換するdrupal_render
かrender()
、テーマ関数を再度実行しない-代わりに、可能な場合はキャッシュされたバージョンを使用します。
のサンプルユースケースはhide()
、ノードテンプレートでコメントフォームを非表示にし、テンプレートの他の場所に表示することです。また、ページやブロックを変更するときにも役立ちます。別の場所で使用する場合は、配列をレンダリングしないで くださいunset()
。
特定のフォーム要素をユーザーから隠したいが、それでもフォーム構造を保持したい場合#access
は、要素のをに設定しFALSE
ます。