Jaka jest różnica między funkcją hide () a unset ()?

9

Jaka jest różnica między hide()i unset()? Chcę ukryć niektóre elementy, znalazłem hide()i unset(), ale nie wiem, którego powinienem użyć.

Brian
źródło

Odpowiedzi:

19

hide()i unset() nie są takie same. hide () to funkcja Drupala, a unset () to surowa funkcja php.

unset()po prostu niszczy zmienną. Dla przykładu,

<?php
$name = 'Drupal';
unset($name);
print $name; // this will result an error as $name is no longer set. `isset()` will return FALSE. 

hide()NIE niszczy zmiennej. Przydatne jest oznaczenie, że niektóre tablice z możliwością renderowania są już renderowane, aby nie były renderowane ponownie .

to po prostu dodaje / zastępuje dany argumentem jest #printedaby się prawdą Więc drupal_renderalbo render()nie będzie ponownie wykonać funkcje motywu - zamiast tego, będzie korzystał wersję pamięci podręcznej jeśli są dostępne .

Przykładowym przykładem użycia hide()byłoby ukrycie formularza komentarza w szablonie węzła i pokazanie go gdzie indziej w szablonie. Przyda ci się również przy zmianie stron lub bloków. NIE rób unset()tablicy renderowania, jeśli chcesz użyć jej gdzie indziej.

Jeśli chcesz ukryć jakiś określony element formularza przed użytkownikiem, ale nadal chcesz zachować strukturę formularza, ustaw #accesselement na FALSE.

ukryć()

drupal_render ()

nieoprawny()

AyeshK
źródło