来自模型的全局变量


Global Variable from Model

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

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

现在我尝试进入我的标题.php视图并定义一个变量,例如

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

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

如果要从全局范围导入变量,则需要使用 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();