微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

phpstan 不通过 strip_tags

如何解决phpstan 不通过 strip_tags

我有一个 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)

我有来自 PHPStan 的输出

 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,您确实想在进一步深入代码之前检查一下...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?