Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-Can';t将会话变量设置为类静态默认值_Php_Class_Session Variables - Fatal编程技术网

PHP-Can';t将会话变量设置为类静态默认值

PHP-Can';t将会话变量设置为类静态默认值,php,class,session-variables,Php,Class,Session Variables,如何将$dbname设置为随着此类中会话值的更改而更改? 无论我做什么,总是会出错 class db_config { // default connection public static $dbname = $_SESSION['db_to_use']; // Your database name public static $dbuser = 'root'; // Your database username public static $dbpass =

如何将
$dbname
设置为随着此类中会话值的更改而更改? 无论我做什么,总是会出错

class db_config
{

    // default connection
    public static $dbname = $_SESSION['db_to_use']; // Your database name
    public static $dbuser = 'root'; // Your database username
    public static $dbpass = 'xxxxxxx'; // // Your database password
    public static $dbhost = 'localhost';
....

}

提前感谢

您可以使用以下内容:

<?php
session_start();
$_SESSION['db_to_use'] = 'mydatabase';

class db_config
{

    // default connection
    public static $dbname = '';
    public static $dbuser = 'root'; // Your database username
    public static $dbpass = 'xxxxxxx'; // // Your database password
    public static $dbhost = 'localhost';

    public function __construct()
    {
        $this->setDbName();
    }

    public function setDbName()
    {
        if(isset($_SESSION['db_to_use']) && !empty($_SESSION['db_to_use'])) {
            self::$dbname = $_SESSION['db_to_use']; // Your database name
        } else {
            return false;
        }
    }
}

$con = new db_config();
echo 'db_name : ' . $con::$dbname;

您遇到了什么错误?你用的是哪个版本的PHP?你用的是
session\u start()
?你不能用动态值初始化类属性,而是创建一个setter。它对我来说很有效,最重要的是我更喜欢使用:if(session\u status()==PHP\u session\u NONE){session\u start()}这一行对我来说没有意义:$\u session['db\u to\u use']='mydatabase';感谢
$\u会话['db\u to\u use']='mydatabase'我刚才添加的代码是为了演示代码功能。不客气。