PHP类和全局变量

时间:2011-11-03 02:59:07

标签: php oop class global-variables

我最近开始使用课程。我一直在使用程序编程已经有一段时间了,所以它有点挑战。

我的问题。

如果我有这样的课程:

class Example {

   public $name;
   public $whatever;
   public $yearAdded

   public function __construct($name, $whatever=NULL, $dateAdded)
   {

   some trival code here;

   }


}

如何让$yearAdded使用我在另一个脚本中的其他位置设置的全局变量?

例如:

global $currentYear = date('Y');

我必须这样做吗

new example($name, $whatever, $currentTime);

或者有没有办法在类中指定始终对$currentYear使用$yearAdded

2 个答案:

答案 0 :(得分:2)

global关键字无法按照您的想法运作。它不会使变量具有全局范围。它只是指定你要调用它的函数,因为你想在外部作用域中使用该变量。

例如:

$a="test";

function something() {
    global $a;
    echo $a;  //Outputs: test
}

如果你想创建一个全局变量以便可以从一个类中访问它,你需要使用$GLOBALS超全局。

http://www.php.net/manual/en/reserved.variables.globals.php

这不被认为是最好的OOP做事方式,但会完成工作。

答案 1 :(得分:0)

你已经有了内置的time()函数,为什么你的构造函数中需要一个自己开发的全局变量?

如果您仔细考虑如何使用全局变量,您会发现通常有更好的方法来访问相同的信息 - 例如系统环境变量,配置文件等