好的,这可能是一个简单/愚蠢的问题,但无法弄清楚......
我有一堂课,我将其包含在另一个 php 脚本中。
所以,我打电话例如$user->login
,但如果我想创建一个函数并使用这个变量$user
或函数外部定义的任何其他变量,我需要在函数内部声明它 GLOBAL 。
有没有办法在函数之外只声明一次 GLOBAL ,而不是在我需要的每个函数中声明它?
不是真的,不。您可以根据情况做一些可怕的事情,但一般来说,只需使用global
. 如果你发现这成为一个问题,你可能有太多的全局变量或出于错误的原因使用它们,你应该考虑将它们放入类(例如)中。
而且,只是为了它,说可怕的事情如下(按恐怖顺序):
user
一个函数并在每次需要$user
全局时调用它user
一个类并使用共享状态静态引用所有内容,因为 PHP 通常没有线程...如果我想创建一个函数并使用此变量 $user 或在函数外部定义的任何其他变量...
你在这里不需要全局变量。将变量传递给您的函数。或者将其传递给您的类构造函数并将其存储在属性中。然后你可以在你的类的每个方法中访问该属性
好吧,所有全局变量都可以通过$GLOBALS['var_name']
所以你可以使用$GLOBALS['user']->login
,但你很快就会更喜欢声明global $user
.
然后,您将 $user 作为参数添加到您的函数中。