PHP - 访问类的所有函数中的全局变量

时间:2011-03-06 18:37:22

标签: php

我需要在类的大多数函数中访问外部php文件的一些变量。我正在以下列方式访问(并且它工作正常)

class test{

function a(){ 
    global $myglobalvar ;
    ..
    ..
    }

function b(){ 
    global $myglobalvar ;
    ..
    ..
    }

function c(){ 
    global $myglobalvar ;
    ..
    ..
    }

}

有没有办法可以在类的所有函数中访问$ myglobalvar而不在每个函数中声明?我确实读过它可以通过在类的构造函数中只声明一次来完成,但我不知道该怎么做。 谢谢你的帮助。

3 个答案:

答案 0 :(得分:14)

class test{

 private $myglobalvar;

 public function __construct($var){
  $this->myglobalvar = $var;
 }

 function a(){ 
  echo $this->myglobalvar;
 }

 function b(){ 
  echo $this->myglobalvar; 
 }

 function c(){ 
  echo $this->myglobalvar;
 }

}

$test = new test("something");
$test->a(); // echos something
$test->b(); // echos something
$test->c(); // echos something

答案 1 :(得分:4)

您可以在构造函数中为全局变量创建引用(非常类似于global):

class test{

    function __construct() { 
        $this->myglobalvar = & $GLOBALS["myglobalvar"];

然后在每种方法中允许aceess到全局通过$this->myglobalvar

答案 2 :(得分:2)

如果您告诉我们有关此案例的更多信息,我们可能会告诉您更好的方法来解决您的问题。应尽可能避免全球化。您是在谈论变量还是更像是在整个服务器往返过程中保持不变的配置选项。在这种情况下,您可以考虑将其视为配置选项并将其存储在注册表对象(单例)中。