我在db.php中定义了这个
define("DB_USER","root");
define("DB_PASSWORD","");
define("DB_DB","exotic_live");
define("DB_HOST", "localhost");
抛出错误
解析错误:语法错误,意外的T_STRING,在第5行的C:\ xampp \ htdocs \ test \ config \ db.php中期待T_FUNCTION
完整代码
class Database{
//define('DB_HOST','localhost');
define("DB_USER","root");
define("DB_PASSWORD","");
define("DB_DB","exotic_live");
define("DB_HOST", "localhost");
private function db_connect(){
$this->dbconnect();
}
private function dbconnect() {
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
or die ("<br/>Could not connect to MySQL server");
mysql_select_db(DB_DB,$conn)
or die ("<br/>Could not select the indicated database");
return $conn;
}
}
$obj_db=new Database();
$obj_db->db_connect();
答案 0 :(得分:4)
使用define()
生成的常量是全局常量,define()
s不能出现在类定义中(除非它们位于其中一种方法中)。
类常量的定义如下:
const DB_USER = "root";
const DB_PASSWORD = "";
const DB_DB = "exotic_live";
const DB_HOST = "localhost";
在同一个类中引用如下:
private function dbconnect() {
$conn = mysql_connect(self::DB_HOST, self::DB_USER, self::DB_PASSWORD)
or die ("<br/>Could not connect to MySQL server");
mysql_select_db(self::DB_DB,$conn)
or die ("<br/>Could not select the indicated database");
return $conn;
}
使用Database::
而不是self::
(与静态成员一样)在课堂外引用。
答案 1 :(得分:2)
您不能将define
放在礼仪类声明中。把它们拿出来
//define('DB_HOST','localhost');
define("DB_USER","root");
define("DB_PASSWORD","");
define("DB_DB","exotic_live");
define("DB_HOST", "localhost");
class Database{
[...]
}
答案 2 :(得分:1)
您无法在类定义中定义常量。
在外部定义它们,或将它们定义为class constants.
答案 3 :(得分:0)
要在类中定义常量,请使用以下语法:
class Foo {
const Bar = 'value';
}