如何将全局变量传递给我想要使用的类,而不在类的每个方法中将它们声明为GLOBAL?
例如:
$admin = "admin_area"; if($_POST['login']){ $user = new Administrator; $user->auth($pass,$username); }
在类Administrator中我希望变量$admin可以在类的所有方法中访问而不执行此操作:
class Administrator{ public function auth($pass,$user){ global $admin; ..... } public function logout(){ global $admin; ..... } }
好吧,你可以声明一个成员变量,并将它传递给构造函数:
class Administrator { protected $admin = ''; public function __construct($admin) { $this->admin = $admin; } public function logout() { $this->admin; //That's how you access it } }
然后实例化:
$adminObject = new Administrator($admin);
但我建议尽量避免全局变量.它们将使您的代码更难以阅读和调试.通过执行类似上面的操作(将其传递给类的构造函数),您可以大大改进它…