auto-fix "Call to function in_array() requires parameter #3 to be set/true."
维护者通常 1 天内回复
评估
调研方向
Read the linked pull request #349 first; it already has this issue in progress. The issue describes the fixer behavior for in_array(), array_search() and eligible array_keys() calls, including named arguments, splat calls, and types inferred from PHPDoc. Done means only calls whose strict equivalence can be proven are changed, while base64_decode() and array_keys() calls without a search value remain unaffected.
由索引模型根据 Issue 内容生成。
描述
if we know native haystack and needle types for a in_array, array_keys or array_search call, it would be great we could fix add a true as 3rd parameter in case its missing or can always be true. we should only fix when haystacks' iterable type is a super type of needle (strict comparison). the fixer must not change calls where equivalence cannot be proven.
Example: in_array($needle, X::VALS) into its strict counterpart in_array($needle, X::VALS, true).
https://phpstan.org/r/e288cf2a-08e5-4c06-9255-1a98eefc99fe
named arguments should be supported and calls using the splat operator should be skipped.
we should not fix calls which get their iterable-value type from a phpdoc, e.g.:
/** @return int[] */
function getArray(): array {}
function doFoo(int $i):bool {
return in_array($i, getArray());
}
For array_keys(), only consider calls with at least two arguments, since the strictness flag matters only when a search value is supplied. Calls without a search value should remain unchanged.
The rule also reports calls to other functions, such as base64_decode(). Those calls should not be made fixable by this change.
- 主要语言
- PHP
- 星标
- 714
- 派生
- 63
- 平均合并
- 1 天 11 小时
- 30 天内合并 PR
- 8
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
phpstan/phpstan-strict-rules 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 48/100
phpstan/phpstan-strict-rules#317 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
phpstan/phpstan-strict-rules#316 · 4 条评论 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 52/100
phpstan/phpstan-strict-rules#298 · 2 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 35/100
phpstan/phpstan-strict-rules#283 · 6 条评论 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 25/100
phpstan/phpstan-strict-rules#276 · 2 条评论 ·
维护者通常 1 天内回复
查看 phpstan/phpstan-strict-rules 的全部 Issue
相似的 Issue
-
claude
难度 2/5 1-3 小时 新手友好度 82/100
sprain/sprainocchio#26 ·
-
sync-en
难度 1/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
sync-en
难度 1/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 83/100
GSA/digital-gov-drupal#569 ·
维护者通常 2 天内回复
-
feature-request-triage
难度 2/5 1-3 小时 新手友好度 65/100
Codeinwp/wp-menu-icons#360 ·