File tree Expand file tree Collapse file tree
tests/PHPStan/Rules/Variables Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1180,4 +1180,14 @@ public function testBug13353(): void
11801180 $ this ->analyse ([__DIR__ . '/data/bug-13353.php ' ], []);
11811181 }
11821182
1183+ public function testBug13694 (): void
1184+ {
1185+ $ this ->cliArgumentsVariablesRegistered = true ;
1186+ $ this ->polluteScopeWithLoopInitialAssignments = true ;
1187+ $ this ->checkMaybeUndefinedVariables = true ;
1188+ $ this ->polluteScopeWithAlwaysIterableForeach = true ;
1189+
1190+ $ this ->analyse ([__DIR__ . '/data/bug-13694.php ' ], []);
1191+ }
1192+
11831193}
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Bug13694 ;
4+
5+ /**
6+ * @param int[] $keys
7+ * @param array<int, int|null> $things
8+ */
9+ function evaluateThings (array $ keys , array $ things ): void
10+ {
11+ foreach ($ keys as $ key ) {
12+ if (array_key_exists ($ key , $ things ) && $ things [$ key ] === null ) {
13+ echo "Value for key $ key is null \n" ;
14+ continue ;
15+ }
16+
17+ if (isset ($ things [$ key ])) {
18+ echo "Key $ key is set \n" ;
19+ }
20+ }
21+ }
You can’t perform that action at this time.
0 commit comments