我最近开始使用课程。我一直在使用程序编程已经有一段时间了,所以它有点挑战。
我的问题。
如果我有这样的课程:
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
。
答案 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()
函数,为什么你的构造函数中需要一个自己开发的全局变量?
如果您仔细考虑如何使用全局变量,您会发现通常有更好的方法来访问相同的信息 - 例如系统环境变量,配置文件等