现在,我将我的类系统嵌入到我的核心类中。所以我这样称呼我的类:
$cms->userClass->function();但这意味着对于我的userClass中的每个函数,我都需要不断地添加:
global $cms;为了能够像这样访问数据库类:
$cms->db->function();有没有办法为整个类设置一个全局变量,而不是在每个函数开始时定义它?
发布于 2011-03-19 21:56:01
如果您构建自己的类并将这些函数放在类中,则可以在类中设置单个属性,并通过$this->var访问所有内容,而不是到处使用函数。
$class = new MyClass($cms);
echo $class->cms; //doesn't work cause it's private
class MyClass () {
private $cms; //private so it's only accessible within this class
function __construct ($cms) {
$this->cms = $cms;
}
//all your functions here can use $this->cms
function myFunction () {
echo $this->cms->func(); //this will work
}
}发布于 2011-03-19 21:56:20
我不认为一个类是全局的。
然而,有几个替代方案:
私有$cmsref;函数__construct(){ global $cms;$$cmsref->cmsref= & $cms;// $this->cmsref现在将引用$cms}
函数foo(){ //访问$cms:$_GLOBALS"cms";}
https://stackoverflow.com/questions/5362451
复制相似问题