1

我有我想要爆炸的 html 字符串<br>,但有时它可以在其他标签内。

if (in_array($param, $customOrdering, true) && $value) {
    $ordering = array_search($param, $customOrdering, true);
    $segments[$ordering] = [];
    if (in_array($param, $explodeParams, true)) {
        $values = explode('<br>', $value);
        foreach ($values as $v) {
            $testing_value = $v;
            if (!empty(trim(strip_tags($testing_value)))) {
                array_push($segments[$ordering], $this->createSegmentFromParam($param, $v));
138         } elseif (!empty(trim($v)) && $segments[$ordering]) {
139             end($segments[$ordering])->value_raw .= strip_tags($v, $this->allowedTags);
            }
        }
    } else {
        array_push($segments[$ordering], $this->createSegmentFromParam($param, $value));
    }
}

createSegmentFormParam 的声明

 @return ArrayHash
 
private function createSegmentFromParam($param, $value)

我有这个来自 phpStan 的输出

 138    Right side of && is always false.                                    
 139    Cannot access property $value_raw on false.

任何想法如何传递?代码运行良好

4

1 回答 1

0

对于类似的行为或 PHP Stan -属性上的 array_push 的假阴性仍然存在未解决的问题

尝试不使用array_push并在线替换138为以下内容:

$segments[$ordering][] = $this->createSegmentFromParam($param, $v);

除此之外,在您的代码开头array_search可能会返回FALSE您确实想在继续执行代码之前检查这一点......

于 2021-03-15T15:12:02.613 回答