You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHPStan对数组键存错误假设:empty判断后类型错误窄化

PHPStan中empty()判断后的类型窄化是否合理?

我发现PHPStan在执行if (empty(...))判断后,存在类型窄化不符合预期的情况。使用的PHPStan版本是2.1.10,级别为10。

代码示例如下:

\PHPStan\dumpType($_GET); // array<mixed>
    
if (empty($_GET['ssid'])) { /* do nothing */ }

\PHPStan\dumpType($_GET); // non-empty-array&hasOffsetValue('ssid', mixed~(0|0.0|''|'0'|array{}|false|null))

我认为即便经过该if判断(其结果可能为false),$_GET的类型仍应保持为array<mixed>。想请教这种类型窄化是否合理,还是属于BUG?

内容的提问来源于stack exchange,提问作者Roman Hocke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 17:32:31