1

不确定它本身是否是全局的,但我需要的是从模型中设置的变量,该变量在模型被调用时动态生成。但是,我需要设置一个变量,该变量可供通过模板拉入的多个视图访问以使用相同的变量。

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

现在我尝试进入我的 header.php 视图并定义一个变量

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

我需要一些可以跨越障碍的东西,而且我更愿意避免使用会话/cookie,因为我想避免在英国处理整个 Cookie 事情,因为该网站的一半观众来自英国,我d 宁愿不必为了这个目的而努力说这个网站使用 cookie 等等等等接受/拒绝。此外,如果他们拒绝,这会给我的工作带来麻烦。

4

1 回答 1

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();    
于 2012-05-29T00:04:03.153 回答