2016-09-10 10 views
1

すべてのセッション情報を保持する簡単なクラスを作成しようとしていますので、後で簡単に取得できます。私は、すべてのPHPページを通して$ _SESSION ['foo']を使用し続けるのが好きではありません。なぜなら、より整理され、すべてのセッションデータを1つの領域に格納したいからです。私が保存したすべての変数を参照するためのクイックリファレンスが必要な場合。また、サイドノートでは、より良い方法があれば、私はセッションデータを保存して、他のプログラマーが簡単に読み書きできるようにしておくと、非常に役立つ情報になります。他のPHPページから静的変数にアクセスできないのはなぜですか?

これまでのところ、私はこれを持っている...私のPHPページで

class staticVars { 

    public static $ownerID; 
    public static $ownerFullName; 
    public static $ownerEmail; 

    public static function createFromArray($array) { 
     $ownerID = $array['ownerID']; 
     $ownerFullName = $array['ownerFullName']; 
     $ownerEmail = $array['ownerEmail']; 
    } 
} 

を以下のクラスを作成しました...

include("./includes/core/coreGlobals.php"); 

staticVars::createFromArray($_SESSION); 

echo ("owner id " . staticVars::$ownerID); 

しかし、私はちょうど応答、$ OWNERIDをエコー空白に戻ります。

+0

'$ this-> ownerID = $ array ['ownerID'];'は、その関数内のローカル変数ではなく、class-variableに割り当てたいと思います。 – Qirel

+0

$ thisを非オブジェクトにすることはできません。自己は行く道だった。 – eqiz

答えて

2

変数をクラス変数ではなく関数にローカルに設定しています。使用selfまたは多分static:あなたはstaticを使用するときのためLate Static Bindings

public static function createFromArray($array) { 
    self::$ownerID = $array['ownerID']; 
    self::$ownerFullName = $array['ownerFullName']; 
    self::$ownerEmail = $array['ownerEmail']; 
} 

を参照してください。

関連する問題