2012-05-28 49 views
1

不知道它是否是全局的,但我需要的是一个变量,它是在模型被调用时动态生成的模型中设置的。不过,我需要设置一个变量,通过模板拉入多个视图以使用相同的变量。模型的全局变量

其客户赞助商的广告ID每页有多个广告点例如486x60和160x90点。但是我想要做的是当我从广告中随机抽取ID时,我希望所有广告位都是同一个赞助商。

现在我已经试过要在我的header.php视图定义诸如

$adsIDvar = $this->modelname->sponsorids()一个变量,然后在每个视图我只是用$ varIDvar但广告投放似乎没有任何的意见inherate变量。我试图找到关于这方面的信息,但大多数寻找类似符号的人都需要硬编码变量,例如网站标题。

我需要一些能够跨越障碍的东西,我宁愿避免会话/ cookies,因为我想避免处理整个Cookie在英国的事情,因为该网站的观众的一半是从英国和我宁愿不经过说这个网站使用cookies等等的努力等等接受/拒绝只是为了这个目的。此外,如果他们拒绝了,那就会在我的工作中扭转局面。

回答

1

如果要从全局范围导入变量,则需要使用global关键字。例如:

class SomeClass { 
    public function SomeFunction() { 
     global $adsIDvar; // now it is imported from the global scope 
    } 
} 

这只是我的意见,但也许是更好的方法是使一类特殊的公正处理广告ID。我可能会尝试这样的事情:

class AdHelper { 
    public static $advertiser_id; 

    public static function getAdvertiserId() { 
     if (!isset(self::$advertiser_id)) { 
      self::selectAdvertiserId(); 
     } 

     return self::$advertiser_id; 
    } 

    protected static function selectAdvertiserId() { 
     self::$advertiser_id = ....; // Implement this however you like, random or whatever 
    } 
} 

// you can call it from anywhere like: 
$adsIDvar = AdHelper::getAdvertiserId();