【发布时间】:2017-06-13 02:12:12
【问题描述】:
我在命名空间 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 命名空间中的 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
我会得到空白值。
请提出建议。
【问题讨论】:
-
从句法的角度来看应该没问题。检查 $auth->type 和 $auth->module 是否真的在赋值时返回非空白值,并检查你是否在赋值后访问静态变量。
-
@IvoHrádek :我已经检查了 $auth->type 和 $auth->module 中的值,两者都包含非空白字符串值。此外,我确信我在分配后访问变量。请提出我无法理解的任何更改。
-
我也尝试过使用 getter 和 setter 方法,但没有运气。公共静态函数 setLoginUserType($UserType) { self::$LOGINUSER_TYPE = $UserType; } 公共静态函数 getLoginUserType() { return self::$LOGINUSER_TYPE; // "QWERTY";任何建议。很抱歉无法很好地格式化评论中的代码。