Drupal 7全局$ user变量

时间:2012-03-16 08:01:11

标签: drupal

如果有人能让我知道我们如何设置global $user变量,以便我们不必在每个函数中重新声明它,以便访问其内容,我将不胜感激。我们如何声明它以便模块中的所有函数都可以使用它?

3 个答案:

答案 0 :(得分:5)

您正在寻找的全局类型(在每个范围内始终可用)在PHP中称为superglobal。您不能声明新的超全局,但您可以直接访问所有全局变量,因为它们是$GLOBAL超全局的一部分。换句话说,您可以使用$GLOBALS['user']直接访问$ user global。

有关更多信息和替代方法,另请参阅create superglobal variables in php?

答案 1 :(得分:3)

你不能......这就是全局变量在PHP中的运作方式。如果要将全局变量导入本地函数,则必须使用global关键字,无法绕过它。这是PHP语言的“特性”,它与Drupal无关。

另一种方法可能是实现辅助函数:

function get_current_user() {
  global $user;
  return $user;
}

并称之为:

$user = &get_current_user();

答案 2 :(得分:1)

在你的函数中,如果你想使用$ user变量,你只需要在$ user之前使用/实例化'global'关键字。这样您就可以访问该网站当前用户的所有数据。

例如

    function myGenericFunc(){
      global $user;
      $user_id = $user->uid;
    }

请注意,您无法重新声明它。

我希望它有所帮助。