所有函数的php变量?

时间:2009-09-10 21:55:26

标签: php

我正在创建一个包含许多功能的php页面,这些功能需要使用相同的变量(会话ID)。

我能写$ ID = $ _SESSION ['ID'];并在每个函数中使用“ID”?

而不是必须写$ ID = $ _SESSION ['ID'];在每个功能?

由于

4 个答案:

答案 0 :(得分:1)

是的,您可以这样做,但最好创建一个包含会话的SessionManager类,并通过静态ID函数公开值(如getXX)。

尝试这样的事情:

class SessionManager {
    public static function getID() {
        return $_SESSION['ID'];
    }
}

然后您就可以在任何地方获取ID:

SessionManager::getID();

答案 1 :(得分:1)

如果您希望在函数范围之外定义变量并且能够从函数内自动访问它,那是不可能的。

您可以定义$ ID = $ _SESSION ['ID'];在你的函数范围之外,但是在每个函数中你必须添加它:

  

全球$ ID;

这将使函数可以访问$ ID变量。

出于多种原因,不建议这样做。如果我是你,我会直接从函数中调用$ _SESSION ['ID']。

答案 2 :(得分:0)

如果将$ID声明为全局变量,则可以在每个函数中使用它(在调用global $ID之后)。但它不会更新$_SESSION['ID'],如果你也想要这样,你必须使用引用:

$ID = &$_SESSION['ID']

答案 3 :(得分:0)

(以防万一你还没想过)你也可以在每个函数的开头“转换”所有会话变量:

foreach ($_SESSION as $key => $value) { 
    $$key = $value; 
}