如何在PHP Laravel中设置和访问名称空间之外的静态变量

时间:2017-01-27 11:44:46

标签: php laravel

我在命名空间App \ Http \ Lib中有一个php类作为GISApplication,它包含静态数据成员。我想设置&访问来自命名空间之外的不同类的静态数据成员的值。我怎样才能设置&访问该值。

<?php
namespace App\Http\Lib; 

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

      // More Static Data Members

}

假设我想从App \ Http \ Controllers命名空间&amp;中的LoginController类设置这些成员的值。从App \ Http \ Operations命名空间中的不同类访问该值。

我在App \ Http \ Controllers命名空间AS

中设置LoginController类的值
GISApplication::$LOGINUSER_TYPE = $auth->type;
GISApplication::$USERMODULE = $auth->module;

当我从App \ Http \ Operations AS中的FrontOperation类访问值

GISApplication::$LOGINUSER_TYPE

我会得到空白值。

请建议。

1 个答案:

答案 0 :(得分:0)

PHP中的静态变量在页面刷新/回发后不保留值。所以每次我尝试访问价值时,我都会得到空白价值。我从下面的链接中得到了这个想法

How do I change a static variables value in PHP?

为解决这个问题,我在LoginController中使用了Session变量

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

要在不同的控制器中访问,只需使用

即可
$user= $_SESSION['LOGINUSERTYPE'];

如果有其他合适的方式,请建议。