require_once导致的一次Bug
代码如下:
public function test($table) {
require_once ROOT_PATH . '/config/db.config.php';
$result = false;
if (!$DB_CONFIG[$table]) {
return $result;
}
// 代码省略
}
上线后发现test方法没执行,加断点调试后发现走到这里的if判断里直接return掉了。
断点调试,发现$DB_CONFIG为NULL,这是什么灵异的问题。
检查代码后,发现是由于require_once导致的。
这里如果在函数外其他地方加载了db.config.php文件,这里就不再加载这个文件,导致$DB_CONFIG这个变量为空。
改为require后恢复正常。
总结
对于配置文件,不要使用require_once进行加载。
另外也不推荐使用require_once进行文件加载,具体见《再一次, 不要使用(include/require)_once》