# Foreach Iterable Analyzer
Category | Severity | Time To Fix |
---|---|---|
✅ Reliability | Major | 5 minutes |
Class: Enlightn\Enlightn\Analyzers\Reliability\ForeachIterableAnalyzer
# Introduction
This analyzer scans your application code to ensure that you are not iterating over non-iterable types.
Consider the following code:
$string = 'foo';
foreach ($string as $x) {
//
}
A string is not iterable, so this would result in a runtime error. This analyzer detects this bug ahead of time for you.
There may also be situations where in certain edge cases, your variable is not iterable. For instance, consider the following code:
$arrayOrFalse = [1, 2, 3];
if (doFoo()) {
$arrayOrFalse = false;
}
foreach ($arrayOrFalse as $val) {
//
}
Here, depending on the return value of the doFoo
function, the $arrayOrFalse
variable may or may not iterable. These errors are also detected by this analyzer to detect edge case bugs ahead of time.
There may be a small percentage of "false positives" where a condition may always be true or false, making the variable iterable at all times. In such situations, you may ignore this analyzer.
Viewing Detailed Error Messages
To view detailed error messages, use the --details
option while running the enlightn
Artisan command.
# How To Fix
This analyzer displays the files and lines of code where the possible bugs may be. You would need to evaluate whether your code actually contains a bug and fix it accordingly.