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