【发布时间】:2012-02-23 18:53:29
【问题描述】:
我到处寻找,但似乎无法以某种方式找到答案。重用或回收变量是否可以接受(好的或坏的做法)?它有效,我已经使用过几次这种方法,但我不知道我是否应该这样做。我试图摆脱使用静态方法,转而使用依赖注入。
在本例中,$table_name 设置在别处。
class DbObject {
private $db = NULL;
protected $table_name;
public function __construct($dbh, $item) {
$this->db = $dbh;
$this->$table_name = $item;
}
// counts items in database //
public function count_all() {
try {
$sql = 'SELECT COUNT(*) FROM ' . $this->table_name;
$stmt = $this->db->query($sql);
$stmt->setFetchMode(pdo::FETCH_COLUMN, 0);
$result = $stmt->fetchColumn();
return $result;
} catch (PDOException $e) {
echo $e->getMessage());
}
}
要使用它,我会这样使用它:
$total_count = new DbObject(new Database(), 'items');
$total_count = $total_count->count_all();
这是一种可接受的编码方式吗? 谢谢你的帮助。
【问题讨论】:
-
技术上是正确的,但是调试时会导致很多混乱
-
这个问题有点用词错误:变量经常被重复使用和“回收”(这就是它们的用途,你经常不止一次地使用一个变量)。你更关心变量名。这实际上回答了这个问题:如果您不想拥有虚假的朋友,请不要为不同的事物使用相同的名称。
标签: php oop variables methods dependency-injection