1

それ自体がグローバルかどうかはわかりませんが、必要なのは、モデルが呼び出されたときに動的に生成されるモデル内から設定される変数です。ただし、同じ変数を使用するには、テンプレートを介してプルされている複数のビューにアクセスできる変数を設定する必要があります。

私のクライアントがスポンサーしているその広告IDには、ページごとに複数の広告スポットがあります。たとえば、486x60と160x90のスポットです。しかし、私がやろうとしているのは、IDが束からランダムに引き出されたときに、すべての広告スポットを同じスポンサーにしたいということです。

今、私は自分のheader.phpビューに行き、次のような変数を定義しようとしました

$adsIDvar = $this->modelname->sponsorids()次に、すべてのビューで$ varIDvarを使用した広告の配置がありますが、どのビューも変数を継承していないようです。私はこれに関する情報を見つけようとしましたが、同様の表記法を探しているほとんどの人は、たとえばサイトタイトルのようなハードコードされた変数を必要とします。

私は障壁を越えることができる何かが必要です、そして私はサイトの視聴者のかなりの半分が英国と私から来ているので、私は英国でクッキー全体を扱うことを避けたいのでセッション/クッキーを避けたいです。 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 に答える