2017-01-27 2 views
0

静的データメンバーを含むGISApplicationとしてApp \ Http \ Libという名前空間に1つのPHPクラスがありました。私は&静的データメンバーのアクセス値を名前空間の外の異なるクラスから設定したいと思います。どのようにして&にその値にアクセスできますか。PHPの名前空間以外の静的変数を設定してアクセスする方法Laravel

<?php 
namespace App\Http\Lib; 

class GISApplication 
{ 
     public static $LOGINUSER_TYPE; 
     public static $USERMODULE; 

     // More Static Data Members 

} 

私は\のHttp \コントローラの名前空間をアプリケーションにLoginControllerクラスからのApp \のHttp \オペレーション名前空間の異なるクラスからの値&アクセスをこれらのメンバーの値を設定するとします。

私は

GISApplication::$LOGINUSER_TYPE 

ASのApp \のHttp \操作にFrontOperationクラスから値にアクセスするとき、私は空白になってます

GISApplication::$LOGINUSER_TYPE = $auth->type; 
GISApplication::$USERMODULE = $auth->module; 

ASのApp \のHttp \コントローラ名前空間でLoginControllerクラスから値を設定値。

お勧めします。

+0

これは構文的には問題ありません。代入の時点で$ auth-> typeと$ auth-> moduleが本当に空白でない値を返しているかどうかを確認し、代入後に静的変数にアクセスしているかどうかもチェックしてください。 –

+0

@IvoHrádek:$ auth-> type&$ auth-> moduleの値はすでにチェックされていますが、両方とも空白でない文字列値を含んでいます。また、私は割り当て後に変数にアクセスしていると確信しています。 私が把握できない変更を提案してください。 –

+0

私はgetter&setterメソッドも試していますが、運はありません。 public static function setLoginUserType($ UserType){ self :: $ LOGINUSER_TYPE = $ UserType; } \t \t public static function getLoginUserType(){ return self :: $ LOGINUSER_TYPE; \t // "QWERTY"; } 提案があります。 申し訳ありませんがコメントのコードを書式設定できません。 –

答えて

0

PHPの静的変数は、ページ更新/ポストバック後に値を保持しません。だから私は価値にアクセスしようとするたびに、私は空白価値を得ています。私は単に

$user= $_SESSION['LOGINUSERTYPE']; 

の場合を使用し、私は別のコントローラでアクセスするには

$_SESSION['LOGINUSERTYPE'] = $auth->type; 
$_SESSION['USERMODULE'] = $auth->module; 

としてLoginControllerにセッション変数を使用し、問題を解決するために

リンク以下

How do I change a static variables value in PHP?

からこのアイデアを得ました他の適切な方法をお勧めします。

関連する問題