如果有人能告诉我们如何设置global $user
变量,我们不必在每个函数中重新声明它,以便访问它的内容。我们如何声明它以便模块中的所有功能都可以使用它?
3
A
回答
4
的全球您一直在寻找(可用的,在每一个类型范围)在PHP中被称为superglobal。你不能声明新的超全局变量,但你可以直接访问所有的全局变量,因为它们是超全球的$GLOBAL
的一部分。换句话说,您可以使用$GLOBALS['user']
直接访问$ user全局。
另请参阅create superglobal variables in php?欲了解更多信息及替代方法。
3
你不能......这就是全局变量在PHP中的工作原理。如果您想将全局变量导入到您的本地函数中,那么您必须使用关键字global
,否则无法绕过它。这是PHP语言的一个'功能',它与Drupal无关。
的另一种方法可能是实现一个辅助功能:
function get_current_user() {
global $user;
return $user;
}
,并调用它是这样的:
$user = &get_current_user();
1
在你的函数中,如果你想使用$ user变量,你只需要在$ user之前使用/实例化'global'关键字。这样您就可以访问该网站当前用户的所有数据。
例如
function myGenericFunc(){
global $user;
$user_id = $user->uid;
}
请注意,您不能重新声明它。
我希望它有帮助。
相关问题
- 1. 'Global'变量Razor
- 2. Drupal 7全局JavaScript变量
- 3. Drupal 7 php变量到jquery
- 4. Drupal 7 Views $ title变量
- 5. Node.js/socket.io“global”变量
- 6. LISP global alist变量
- 7. Drupal 7用于变量的字段
- 8. 在URL中传递变量Drupal 7
- 9. 在toolbar.tpl.php中获取$ breadcrumb变量 - Drupal 7
- 10. 在html.tpl.php中获取$ node变量 - Drupal 7
- 11. 内容类型关系变量drupal 7
- 12. PHP类中的GLOBAL变量
- 13. MySQL wait_timeout变量 - GLOBAL vs SESSION
- 14. 如何使OpenFileDialog变量Global?
- 15. 在c#中声明变量global#
- 16. PHP,HTML,Drupal 7的可变
- 17. 的Drupal 7改变查询
- 18. Drupal 7 Video.js浏览量
- 19. Drupal 7个的add_js重量
- 20. handler_filter views drupal 7
- 21. Drupal 7 user.tpl.php $ account
- 22. Drupal 7 Cache Busting
- 23. 的Drupal 7:node.tpl.php
- 24. 必须声明标量变量“@user”
- 25. Node.js:在Module.exports Global中执行变量吗?
- 26. AngularJS中的JS Global变量返回undefined
- 27. Javascript中的GLOBAL变量是什么?
- 28. NodeJS中GLOBAL变量的秘密
- 29. InstanceVariableAssumption:UsersController假设实例变量太多'@user'
- 30. 在Delphi中使用变量global和变量类
+1忘了'$ GLOBALS' :) – Clive 2012-03-16 13:07:02
非常感谢。所以现在,我每次需要获取当前用户的用户名时,只需执行$ GLOBALS ['user'] - > uid。 – 2012-03-19 05:53:22