В чем разница между функциями hide () и unset ()?

9

В чем разница между hide()и unset()? Я хочу скрыть некоторые элементы, я нашел hide()и unset(), но я не знаю, какой из них я должен использовать.

Брайан
источник

Ответы:

19

hide()и unset() не одинаковы. hide () - это функция Drupal, а unset () - необработанная функция 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на логическую единицу, так drupal_renderили render()не будет выполнять функции тему снова - вместо этого, он будет использовать кэшированные версии , если имеется .

Пример использования: hide()скрыть форму комментария в шаблоне узла и показать ее где-нибудь еще в шаблоне. Вы также найдете это полезным при изменении страниц или блоков. Вы НЕ unset() рендер массива , если вы хотите использовать его где - нибудь в другом месте.

Если вы хотите скрыть какой-то определенный элемент формы от пользователя, но при этом хотите сохранить структуру формы, установите #accessдля этого элемента значение FALSE.

скрывать()

drupal_render ()

снята с охраны ()

AyeshK
источник