我在命名空间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
我会得到空白值。
请建议。
答案 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'];
如果有其他合适的方式,请建议。