3v4l.org

run code in 300+ PHP versions simultaneously
<?php $grades = array( "PK", "K", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ); function normalizeLexileScore($ability, $grade_level = null, $cast = false) { if( $grade_level == null ) { return $ability; } if ($cast) { $grade_level = (int)$grade_level; } $grade_level = max(min($grade_level, 9), 2); $gli_cap = array(NULL, NULL, 975, 1070, 1165, 1250, 1300, 1370, 1420, 1500); $normalized = @min($ability, @$gli_cap[$grade_level]); return $normalized; } foreach ($grades as $grade) { $minBad = normalizeLexileScore(0, $grade, false); $maxBad = normalizeLexileScore(2000, $grade, false); $minGood = normalizeLexileScore(0, $grade, true); $maxGood = normalizeLexileScore(2000, $grade, true); printf("Grade %2s: Bad: %d < %d, Good: %d < %d\n", $grade, $minBad, $maxBad, $minGood, $maxGood); }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
Grade PK: Bad: 0 < 1500, Good: 0 < 975 Grade K: Bad: 0 < 1500, Good: 0 < 975 Grade 01: Bad: 0 < 975, Good: 0 < 975 Grade 02: Bad: 0 < 0, Good: 0 < 975 Grade 03: Bad: 0 < 0, Good: 0 < 1070 Grade 04: Bad: 0 < 0, Good: 0 < 1165 Grade 05: Bad: 0 < 0, Good: 0 < 1250 Grade 06: Bad: 0 < 0, Good: 0 < 1300 Grade 07: Bad: 0 < 0, Good: 0 < 1370 Grade 08: Bad: 0 < 0, Good: 0 < 1420 Grade 09: Bad: 0 < 0, Good: 0 < 1500 Grade 10: Bad: 0 < 1500, Good: 0 < 1500 Grade 11: Bad: 0 < 1500, Good: 0 < 1500 Grade 12: Bad: 0 < 1500, Good: 0 < 1500
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33
Grade PK: Bad: 0 < 975, Good: 0 < 975 Grade K: Bad: 0 < 975, Good: 0 < 975 Grade 01: Bad: 0 < 975, Good: 0 < 975 Grade 02: Bad: 0 < 0, Good: 0 < 975 Grade 03: Bad: 0 < 0, Good: 0 < 1070 Grade 04: Bad: 0 < 0, Good: 0 < 1165 Grade 05: Bad: 0 < 0, Good: 0 < 1250 Grade 06: Bad: 0 < 0, Good: 0 < 1300 Grade 07: Bad: 0 < 0, Good: 0 < 1370 Grade 08: Bad: 0 < 0, Good: 0 < 1420 Grade 09: Bad: 0 < 0, Good: 0 < 1500 Grade 10: Bad: 0 < 1500, Good: 0 < 1500 Grade 11: Bad: 0 < 1500, Good: 0 < 1500 Grade 12: Bad: 0 < 1500, Good: 0 < 1500

preferences:
240.84 ms | 405 KiB | 309 Q