所有函数的php变量?

所有函数的php变量?,php,Php,我正在创建一个php页面,其中包含许多需要使用相同变量(会话id)的函数 我是否能够编写$ID=$\u会话['ID'];在每个函数中都使用ID 而不必写$ID=$\u会话['ID'];在每个功能中 谢谢是的,您可以这样做,但最好创建一个SessionManager类,该类通过静态getXX函数包装会话并公开值(如ID) 试着这样做: class SessionManager { public static function getID() { return $_SESSI

我正在创建一个php页面,其中包含许多需要使用相同变量(会话id)的函数

我是否能够编写$ID=$\u会话['ID'];在每个函数中都使用ID

而不必写$ID=$\u会话['ID'];在每个功能中


谢谢

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

试着这样做:

class SessionManager {
    public static function getID() {
        return $_SESSION['ID'];
    }
}
SessionManager::getID();
然后,您可以在任何地方获得ID,如下所示:

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

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

您可以定义$ID=$\u会话['ID'];在您的职能范围之外,但在每个职能范围内,您必须添加以下内容:

全球$ID

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


出于许多原因,没有建议这样做。如果我是你,我会直接从函数中调用$\u SESSION['ID']。

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

$ID = &$_SESSION['ID']
(以防万一您还没有想到)您还可以在每个函数开始时“整体”转换所有会话变量,从而:

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

我不认为他在上课我在说什么课?好的,我明白了。公共变量可能令人困惑。改为环球汉克斯。我是否能够使用此代码执行类似操作:$getid=“从
users
中选择
username
,其中
ID
='ID';$result=mysql\u查询($getid);$count=mysql\u num\u行($result);$row=mysql\u fetch\u row($result);而不是每次我需要访问数据库中的某一行时都必须键入它?谢谢如果您根据存储的会话用户id定期检索用户名,那么为什么不在登录时也将用户名存储在会话变量中?这只是一个示例,我正在使用用户id检索更多信息,只是想知道我是否可以“加载”然后所有行调用函数中的一行。在这种情况下,我可能会编写一个函数来检索所有需要的信息并将其作为数组返回。