如果有人能让我知道我们如何设置global $user
变量,以便我们不必在每个函数中重新声明它,以便访问其内容,我将不胜感激。我们如何声明它以便模块中的所有函数都可以使用它?
答案 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;
}
请注意,您无法重新声明它。
我希望它有所帮助。