同一文件中的类声明和对象初始化是否符合 PSR-1


Is class declaration and object initialization in the same file PSR-1 compliant?

PSR-1 声明:

文件应该声明符号(类、函数、常量、 等)或引起副作用(例如生成输出、更改.ini 设置等)但不应该两者兼而有之。

假设我们有以下代码:

// db.php file
class Db{
    // Some code here
}
$DB = new Db();

实例化对象是否算作引起副作用?换句话说,上述代码是否符合PSR-1?

根据PSR-1

"副作用"包括但不限于:[...] 连接到外部服务 [...]

更一般地说,它被指定:

短语"副作用"是指不直接执行逻辑 与声明类、函数、常量相关

所以答案是:它不符合PSR-1标准。

您应该在主逻辑文件中包含db.php文件。然后实例化您的数据库对象。