我正在创建一个包含许多功能的php页面,这些功能需要使用相同的变量(会话ID)。
我能写$ ID = $ _SESSION ['ID'];并在每个函数中使用“ID”?
而不是必须写$ ID = $ _SESSION ['ID'];在每个功能?
由于
答案 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;
}