【发布时间】:2016-11-04 20:01:30
【问题描述】:
我正在学习面向对象的 PHP。现在我的任务是建立联系。我想展示我的代码并要求您提供一些优化支持。也许有几个绝对错误的理解的事情。我不希望如此。我想改进我的设计。实际上,常量当然具有权利值。十分感谢! :)
// index.php
<?php
require( dirname( __FILE__ ) . '/config.php' );
new db(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
?>
// config.php
<?php
define('DB_HOST', 'host');
define('DB_USER', 'user');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
if (!defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . '/includes/classes/db.class.php');
?>
// db.class.php
<?php
class db
{
protected $db_host;
protected $db_user;
protected $db_password;
protected $db_name;
function __construct($dbHost, $dbUser, $dbPassword, $dbName)
{
global $mysqli;
$this -> db_host = $dbHost;
$this -> db_user = $dbUser;
$this -> db_password = $dbPassword;
$this -> db_name = $dbName;
$this -> mysqli = new mysqli($this -> db_host, $this -> db_user, $this -> db_password, $this -> db_name);
$mysqli = $this -> mysqli;
}
}
?>
【问题讨论】:
-
您不应该在完全破坏封装的方法中使用全局变量
-
这是代码审查的东西......
-
我投票决定将此问题作为离题结束,因为没有具体问题并且属于代码审查网站。
-
@Eiko 如果没有实际的编程问题/问题,请投票关闭“太宽泛”或“不清楚”。话虽如此,如果代码正常运行,它将成为 Code Review 的主题。