为什么我无法从另一个php页面访问我的静态变量

时间:2016-09-10 18:09:44

标签: php

我试图创建一个包含所有会话信息的简单类,以便稍后轻松获取。我不想继续使用$ _SESSION [' foo']通过我的所有PHP页面访问它,因为我希望更好地组织并将所有会话数据存储在一个区域中如果我需要快速参考以查看我存储的所有变量,我可以拉出页面。同样在旁注中,如果有更好的方法,我想存储SESSION数据,以便其他程序员能够组织和轻松阅读,这也是非常有用的信息。

到目前为止,我创建了以下类..

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'];
    }
}

在我的PHP页面中,我有这个......

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

staticVars::createFromArray($_SESSION);

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

然而,当我回应响应时,$ ownerID只是空白。

1 个答案:

答案 0 :(得分:2)

您正在设置函数的局部变量而不是类变量。使用selfstatic

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

请参阅:Late Static Bindings了解何时使用static

相关问题