当前位置: 首页 > 知识库问答 >
问题:

phpstan不通过strip_tags

融建树
2023-03-14

我有一些html字符串,我想用
分解,但有时它可能在其他标记中。

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.

有什么办法可以传下去吗?代码运行良好

共有1个答案

拓拔松
2023-03-14

对于类似的行为或带有array_push属性的PHP stan-false negative仍然存在一个未解决的问题

尝试不使用array_push并将其替换为第138行:

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

除此之外,在代码的开头,array_search可能返回false您确实希望在进一步深入代码之前检查一下这个...

 类似资料:
  • PHPStan 是一款 PHP 静态分析工具,它专注于在代码中发现错误而不实际运行它。 它甚至能在代码编写测试之前捕获整个类的错误。 PHPStan 让 PHP 更接近编译语言,这意味着在运行实际行之前可以检查代码的每一行的正确性。 使用 要开始对代码执行分析,需要在 Compose r中使用 PHPStan : composer require --dev phpstan/phpstan Com

  • 我试图基于这些参数编写一个程序: 创建一个名为RandomArray的程序,该程序将生成一个名为numArray的数组,该数组包含10个大于1且小于或等于100的随机整数。程序应该要求用户输入一个大于0小于100的整数。然后程序应该显示数组中大于用户输入的数字的所有数字。 下面是我的代码: 我做错了什么,因为这不应该这么难。

  • 我有这样的桌子结构 学生 主题 马克斯 要求是,列出所有通过考试的学生( 不知道要添加什么,如果条件 预期产出

  • 问题内容: 我在通过此测试时遇到问题。问题是,我的结构体中的方法需要写入属性,但接口不接受指针作为其接收者。 测试输出: 正如我提到的,不会被写入,因为我无法将函数接收器设置为指针,因为它不能满足。 问题答案: 如果继续使用一个 指针 来,它应该工作: 然后: 我错过了: 您需要调用指针接收器,而不是值接收器。 由于所有内容都是通过Go中的值传递的,因此使用值接收器将 复制 该实例。

  • 通过SSH推送时: debug1:连接到github.com[192.30.252.129]端口22。 它卡在上面的线上。 telnet错误: 我在同一网络中设置了另一台计算机,使用相同的ssh键,它成功地通过ssh推送到github上,而原来的计算机仍然得到超时。 操作: null null 其实,在问之前,我从谷歌看到过类似的问题,但是没有一个解决问题,也没有一个解释原因。 而且这个问题真的很

  • 我正在尝试编写一个Python脚本,通过Spotify应用程序创建一个Spotify播放列表。我已经在Spotify的开发中心成功创建了一个应用程序,并将必要的变量输入到Spotipy的示例中(见下文)。但是,该脚本没有正确授权。我在服务器运行和不运行的情况下都进行了尝试,但都无济于事。堆栈上有类似的问题,但它们并没有提供完整的解决方案。任何建议都会很有帮助。 这是我通过命令提示符收到的消息: 用