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