问题描述
我有一个 html 字符串,我想用 <br>
将其分解,但有时它可能在其他标签内。
if (in_array($param,$customOrdering,true) && $value) {
$ordering = array_search($param,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],$value));
}
}
createSegmentFormParam 的声明
@return ArrayHash
private function createSegmentFromParam($param,$value)
138 Right side of && is always false.
139 Cannot access property $value_raw on false.
任何想法如何传递?代码运行良好
解决方法
对于类似行为或 PHP Stan 仍有未解决的问题 - False negative with array_push on property
尽量不使用 array_push
并在第 138
行将其替换为以下内容:
$segments[$ordering][] = $this->createSegmentFromParam($param,$v);
除此之外,您的代码开头的 array_search
可能会返回 FALSE
,您确实想在进一步深入代码之前检查一下...