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'代码>我刚才添加的代码是为了演示代码功能。不客气。