Cas*_*kes 5 php oop variables methods dependency-injection
我到处寻找,似乎无法以这种或那种方式找到答案.重用或回收变量是否可接受(好的或坏的做法)?它工作,我已经使用过这种方法几次,但我不知道我是否应该这样做.我正试图摆脱使用静态方法,并转向依赖注入.
在此示例中,$ 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());
}
}
Run Code Online (Sandbox Code Playgroud)
要使用它,我会像这样使用它:
$total_count = new DbObject(new Database(), 'items');
$total_count = $total_count->count_all();
Run Code Online (Sandbox Code Playgroud)
这是一种可接受的编码方式吗?谢谢你的帮助.
Mit*_*eat 10
为不同目的重用变量是等待发生的维护错误.
这是不好的做法.一个命名良好的变量可以帮助代码理解.
在弱类型动态语言(如PHP)中重用变量尤其脆弱.
[在昏暗的过去,我遇到了生产代码中的错误(等等,我认为这是我的!),其中重用本地循环变量,如i和j导致错误...]
| 归档时间: |
|
| 查看次数: |
4591 次 |
| 最近记录: |