2012-05-28 115 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();