我有来自名为:的文件的数据库凭据变量config.php:
$db_server = 'localhost';
$db_user = 'username';
$db_password = 'secret'
$db_name = 'dbname';
Run Code Online (Sandbox Code Playgroud)
现在,我在 /class 文件夹下有一个 PHP 类,它非常适合 CRUD 过程。命名MysqlCrud.class.php:
class Database {
private $db_host = 'localhost'; // Change as required
private $db_user = 'username'; // Change as required
private $db_pass = 'secret'; // Change as required
private $db_name = 'dbname'; // Change as required
}
Run Code Online (Sandbox Code Playgroud)
但是,我想使用来自 的集中变量config.php。这就是为什么我添加一些这样的行:
include('../config.php');
class Database {
global $db_server;
global $db_user;
global $db_password;
global $db_name;
private $db_host = $db_server; // Change as required
private $db_user = $db_user; // Change as required
private $db_pass = $db_password; // Change as required
private $db_name = $db_name; // Change as required
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误消息:
Parse error: syntax error, unexpected 'global' (T_GLOBAL), expecting function (T_FUNCTION) in /home/*** on line **
Run Code Online (Sandbox Code Playgroud)
为什么我不能在 Database 类中使用 config.php 文件中的变量?我在这里做错了什么?谢谢。
您选择使用的方法的问题在于该类不再可重用。任何时候实例化该类时Database,它都会使用全局变量。
我更倾向于这样设置:
数据库.php
class Database {
private $host;
private $db_name;
private $username;
private $password;
function __construct($host, $db_name, $username, $password) {
$this->host = $host;
$this->db_name = $db_name;
$this->username = $username;
$this->password = $password;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在文件中使用该类Database:
include('../config.php');
$db = new Database($db_server, $db_name, $db_user, $db_password);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2781 次 |
| 最近记录: |