Answers:
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为TRUE,drupal_render否则render()将不会再次执行主题功能-而是使用缓存版本(如果有)。
的一个示例用例是hide()将注释表单隐藏在节点模板中,并将其显示在模板中的其他位置。当更改页面或块时,您还将发现它很有用。千万不要 unset(),如果你想在其他地方使用它渲染阵列。
如果你想隐藏用户的某些特定形式的元素,但仍想保留的形式结构,设置#access的元素的FALSE。