PHP代码Sonar报错:未初始化值使用问题求解
解决SonarQube检测到的「使用未初始化的值」Bug
你代码里的问题很明确:构造函数的参数是$user,但你在执行strtoupper(trim($user_id))时,使用了未定义的$user_id变量,这直接触发了SonarQube的数据流检测告警。
修复方案
把代码里的$user_id替换成构造函数传入的$user参数即可:
public function __construct($terminal_code, $user, $user_profile_level, $params = null, $loadOldData = true) { // get conection $this->conn = getStrDsn(); // set variables $this->terminal_code = strtoupper(trim($terminal_code)); // 修正变量名,使用传入的$user参数而非未定义的$user_id $this->user_id = strtoupper(trim($user)); $this->user_profile_level = $user_profile_level; // ... another code }
额外说明
如果你的业务逻辑里确实需要用到$user_id变量(而非直接用$user参数),那必须先对它进行初始化,比如从$user对象/数据中提取ID值,或者给它赋一个默认值,确保在使用前变量是已定义且有值的。
内容的提问来源于stack exchange,提问作者rami-sf
相关产品推荐
相关产品推荐

