PHP Static analysis for public

Label Recipes Issues Files Severity Frequence
Ambiguous Array Index Analyze, All, Simple, Level 2, Semantics, ChangedBehavior 9 3 Minor 10 %
Append And Assign Arrays All, Internal, Analyze, ChangedBehavior 3 3 Minor 0 %
Non-constant Index In Array Analyze, All, Simple, ChangedBehavior 2 1 Minor 14 %
Null Or Boolean Arrays All, Analyze 13 5 Minor 0 %
Randomly Sorted Arrays All, Analyze, Level 4, Suggestions 4 4 Minor 41 %
Too Many Array Dimensions All, Analyze 3 3 Minor 0 %
Weak Type With Array All, Analyze, ChangedBehavior 271 66 Minor 0 %
Ambiguous Visibilities All, Analyze, Semantics, ChangedBehavior 7 7 Minor 70 %
Avoid option arrays in constructors All, Analyze, ClassReview, ChangedBehavior 1 1 Minor 0 %
Avoid Optional Properties All, Analyze, ChangedBehavior 12 9 Major 84 %
Could Be Abstract Class All, Analyze, ClassReview, ChangedBehavior 8 8 Minor 65 %
Class Could Be Final All, Analyze, ClassReview, ChangedBehavior 128 128 Minor 96 %
Method Could Be Static All, Analyze, ClassReview, ChangedBehavior 603 123 Minor 92 %
Could Inject Parameter All, Analyze, ClassReview, ChangedBehavior 5 5 Minor 0 %
Dependant Abstract Classes All, Analyze, ClassReview, ChangedBehavior 1 1 Minor 0 %
Don't Send $this In Constructor All, Analyze, ChangedBehavior 1 1 Minor 41 %
Empty Classes Analyze, All, Simple, ChangedBehavior 1 1 Minor 60 %
Incompatible Signature Methods With Covariance All, Analyze, ChangedBehavior 41 37 Critical 0 %
Assign Default To Properties Analyze, ClearPHP, All, Simple, Level 2, ChangedBehavior 4 2 Minor 71 %
Make Global A Property Analyze, All, Simple, ChangedBehavior 71 34 Minor 37 %
Mismatch Properties Types All, Analyze, LintButWontExec, ClassReview, ChangedBehavior 27 7 Minor 0 %
New Object Then Immediate Call All, Analyze, ClassReview 4 3 Minor 0 %
No Public Access Analyze, All, ChangedBehavior 77 33 Minor 61 %
Forgotten Visibility Analyze, ClearPHP, All, Simple, Level 1, CI-checks, CE 525 71 Minor 42 %
Var Keyword Analyze, OneFile, ClearPHP, All, Simple, Level 1, ChangedBehavior 38 20 Minor 4 %
Parent First All, Analyze, Suggestions, ChangedBehavior 11 11 Minor 56 %
Same Name For Property And Method All, Analyze, ClassReview, Semantics, ChangedBehavior 16 12 Minor 0 %
Never Used Properties Analyze, All, Simple, Unused, ChangedBehavior 12 7 Minor 71 %
Property Used In One Method Only All, Analyze, ChangedBehavior 37 17 Minor 84 %
Scalar Or Object Property All, Analyze 1 1 Minor 32 %
Should Use Local Class Analyze, ClearPHP, All, Simple, ChangedBehavior 478 95 Minor 95 %
Undefined Classes Analyze, All, Stubs, Undefined 157 65 Major 91 %
Undefined Properties Analyze, ClearPHP, All, Simple, CI-checks, CompatibilityPHP82, Undefined, ChangedBehavior, CE 218 44 Major 61 %
Undefined static ::class All, Analyze, CI-checks, Undefined, ChangedBehavior, CE 5 2 Major 36 %
Unreachable Method All, Analyze, Dead code, ClassReview, Unused, ChangedBehavior 20 7 Minor 0 %
Unresolved Classes Analyze, All, Stubs, ChangedBehavior 37 16 Major 76 %
Unresolved Instanceof Analyze, Dead code, ClearPHP, All, Simple, Top10, ChangedBehavior 9 5 Major 48 %
Unused Public Methods All, Analyze, ChangedBehavior 544 105 Minor 0 %
Use ::Class Operator All, Analyze, Performances, Simple, CI-checks, ChangedBehavior, CE 2933 179 Minor 71 %
Use Instanceof Analyze, All, Simple, CI-checks, ChangedBehavior, CE 17 13 Major 63 %
Useless Constructor Analyze, All, Simple, Level 3, ChangedBehavior 3 3 Minor 41 %
Weak Typing All, Analyze, ChangedBehavior 17 6 Minor 47 %
Wrong Typed Property Default All, Analyze, LintButWontExec, ClassReview, CI-checks, CE 4 4 Minor 0 %
Undefined Constants Analyze, All, Simple, CompatibilityPHP72, CI-checks, Stubs, Undefined, ChangedBehavior, CE 116 29 Minor 71 %
Missing Include All, Analyze, ChangedBehavior 8 5 Critical 65 %
Use Named Boolean In Argument Definition All, Analyze, ChangedBehavior 109 39 Minor 84 %
Callback Function Needs Return All, Analyze, CI-checks, CE 3 3 Major 42 %
Could Make A Function All, Analyze, Suggestions, ChangedBehavior 3275 183 Minor 66 %
Deep Definitions Analyze, Appinfo, All, Simple, ChangedBehavior, CE 2 2 Major 13 %
Don't Collect Void All, Analyze, ChangedBehavior 6 4 Minor 0 %
Empty Function Analyze, All, Simple, ChangedBehavior 20 13 Minor 74 %
Hardcoded Passwords Analyze, OneFile, Security, All, Simple, Level 3, ChangedBehavior 474 94 Major 70 %
Method Is Not An If All, Analyze 37 25 Minor 0 %
Mismatch Parameter Name All, Analyze, CompatibilityPHP80, ChangedBehavior, CE 1 1 Minor 0 %
Mismatched Default Arguments All, Analyze, Typechecks, ChangedBehavior 98 33 Minor 80 %
Mismatched Type All, Analyze, Typechecks, ChangedBehavior 2 1 Major 66 %
Must Return Methods Analyze, All, Simple, Level 2, LintButWontExec, CI-checks, ChangedBehavior, CE 1 1 Major 34 %
Never Called Parameter All, Analyze, Suggestions, Rector, Unused 26 18 Minor 92 %
No Boolean As Default All, Analyze 114 41 Minor 84 %
No Return Used All, Analyze, Suggestions, Level 4, ChangedBehavior 55 28 Minor 69 %
Only Variable Passed By Reference All, Analyze, ChangedBehavior 1 1 Critical 43 %
Too Many Local Variables All, Analyze 12 11 Minor 64 %
Undefined Functions Analyze, All, CI-checks, Stubs, Undefined, CE 4695 190 Major 68 %
Unused Parameter Analyze, All, Simple, Unused 134 74 Major 90 %
Unused Returned Value All, Analyze, OneFile, Dead code, Simple, Unused 442 132 Minor 41 %
Useless Argument All, Analyze, ChangedBehavior 2 2 Minor 0 %
Uses Default Values Analyze, All, Simple, CI-checks, ChangedBehavior, CE 2325 186 Minor 98 %
Using Deprecated Method All, Analyze, Attributes 4 2 Minor 0 %
Wrong Number Of Arguments Analyze, OneFile, All, Simple, CI-checks, Stubs, ChangedBehavior, CE 72 31 Major 81 %
Wrong Type Returned All, Analyze, ClassReview, CI-checks, LintButWontExec, ChangedBehavior, CE 443 101 Minor 0 %
Wrong Type With Call All, Analyze, Typechecks, CI-checks, ChangedBehavior, CE 13 1 Minor 0 %
Forgotten Interface All, Analyze, ChangedBehavior 2 2 Minor 48 %
Undefined Interfaces Analyze, All, CI-checks, LintButWontExec, Undefined, ChangedBehavior, CE 10 6 Major 72 %
Unresolved Use Analyze, ClearPHP, All, Simple, ChangedBehavior 3 3 Major 69 %
No array_merge() In Loops Analyze, Performances, ClearPHP, All, Simple, Level 2, Top10, CI-checks, ChangedBehavior, CE 14 11 Major 57 %
Logical To in_array() All, Analyze, Level 2, ChangedBehavior 8 6 Minor 67 %
Pre-increment Analyze, Performances, All, Simple, Level 4, CI-checks, ChangedBehavior, CE 5 3 Minor 74 %
strpos() Too Much All, Analyze, CI-checks, ChangedBehavior, CE 7 4 Minor 49 %
array_key_exists() Works On Arrays All, CompatibilityPHP74, Analyze, ChangedBehavior, CE 7 4 Minor 0 %
Assumptions All, Analyze, ChangedBehavior 39 28 Minor 0 %
Use random_int() Analyze, Security, All, CompatibilityPHP71, Simple, Level 2, CI-checks, ChangedBehavior, CE 19 17 Major 59 %
Don't Pollute Global Space All, Analyze 803 158 Minor 0 %
Exit Without Argument All, Analyze, ChangedBehavior 99 88 Minor 0 %
False To Array Conversion All, LintButWontExec, CompatibilityPHP81, CompatibilityPHP82, Analyze, ChangedBehavior 24 10 Minor 0 %
Wrong Parameter Type Analyze, OneFile, All, Simple, CI-checks, ChangedBehavior, CE 21 10 Major 76 %
Use === null Analyze, OneFile, All, RadwellCodes, Simple, php-cs-fixable, CI-checks, ChangedBehavior, CE 10 9 Minor 53 %
Logical Should Use Symbolic Operators Analyze, OneFile, ClearPHP, All, Simple, Suggestions, Level 2, Top10, php-cs-fixable, CI-checks, CE 6 4 Minor 43 %
Possible Missing Subpattern All, Analyze, Top10, CI-checks, ChangedBehavior, CE 1 1 Minor 45 %
No Class In Global All, Analyze, CI-checks, ChangedBehavior, CE 802 158 Minor 77 %
No Null For Native PHP Functions All, Analyze, CompatibilityPHP81, Deprecated, ChangedBehavior 31 11 Minor 0 %
Only Variable Passed By Reference All, Analyze, LintButWontExec, ChangedBehavior 1 1 Minor 0 %
Scalar Are Not Arrays All, Analyze, CompatibilityPHP74, CI-checks, ChangedBehavior, CE 10 6 Minor 0 %
Should Use Coalesce Analyze, All, Simple, Suggestions, Level 3, CI-checks, ChangedBehavior, CE 65 26 Major 71 %
Too Many Native Calls All, Analyze, ChangedBehavior 1 1 Minor 49 %
Wrong Type For Native PHP Function All, Analyze, CI-checks, ChangedBehavior, CE 46 20 Minor 0 %
Adding Zero Analyze, OneFile, ClearPHP, All, Simple, Level 1, CI-checks, Rector, CE 2 1 Minor 69 %
Altering Foreach Without Reference Analyze, ClearPHP, All, Simple, Level 1, CI-checks, CE 12 8 Major 56 %
Alternative Syntax Consistence All, Analyze, ChangedBehavior 125 1 Major 21 %
Comparison Is Always The Same All, Analyze, ChangedBehavior 4 4 Minor 0 %
Same Variable Foreach All, Analyze, CI-checks, CE 1 1 Minor 16 %
Bail Out Early All, Analyze, OneFile, Simple, Level 4, ChangedBehavior 117 74 Minor 64 %
Strict Comparison With Booleans Analyze, All, Simple, Suggestions, Level 2, CI-checks, ChangedBehavior, CE 46 22 Minor 77 %
Buried Assignation Analyze, All, ChangedBehavior 6 5 Minor 84 %
Cast To Boolean Analyze, OneFile, All, Simple, Level 1, ChangedBehavior 9 7 Minor 56 %
Casting Ternary All, Analyze, OneFile, CI-checks, ChangedBehavior, CE 2 1 Major 0 %
Check All Types All, Analyze, ChangedBehavior 29 14 Major 69 %
Check Division By Zero All, Analyze, ChangedBehavior 2 2 Minor 0 %
Check JSON All, Analyze, CI-checks, CE 22 15 Major 65 %
Common Alternatives Analyze, All, Simple, ChangedBehavior 11 4 Major 80 %
Concat Empty String All, Analyze, OneFile 3 2 Minor 0 %
Could Be Else All, Analyze, ChangedBehavior 3 3 Minor 49 %
Could Be A Static Variable Analyze, OneFile, All, ClassReview, ChangedBehavior 17 15 Major 23 %
Could Use Short Assignation Analyze, OneFile, Performances, All, Simple, CI-checks, Rector, ChangedBehavior, CE 8 4 Minor 63 %
Dangling Array References PHP recommendations, Analyze, ClearPHP, All, Simple, Level 1, Top10, CI-checks, ChangedBehavior, CE 11 5 Major 46 %
Don't Change The Blind Var All, Analyze, ChangedBehavior 32 23 Minor 73 %
Don't Mix ++ All, Analyze, ChangedBehavior 1 1 Minor 56 %
Don't Read And Write In One Expression All, Analyze, CompatibilityPHP73, CompatibilityPHP74, ChangedBehavior, CE 2 2 Critical 38 %
Don't Reuse Foreach Source All, Analyze, ChangedBehavior 26 18 Minor 0 %
Double Assignation Analyze, All, ChangedBehavior 1 1 Major 59 %
Double Checks All, Analyze, ChangedBehavior 18 10 Minor 0 %
Double Instructions Analyze, All, Simple, ChangedBehavior 5 4 Minor 57 %
Drop Else After Return All, Analyze, OneFile, Simple, Suggestions, Level 4, CI-checks, ChangedBehavior, CE 29 24 Minor 70 %
Echo With Concat Performances, Analyze, All, Simple, Suggestions, ChangedBehavior 61 27 Minor 60 %
Else If Versus Elseif Analyze, All, Simple, php-cs-fixable, Rector, CI-checks, CE 3 3 Minor 66 %
Empty Blocks Analyze, All, Simple, CI-checks, ChangedBehavior, CE 8 7 Minor 51 %
Empty Instructions Dead code, Analyze, All, Simple, ChangedBehavior 8 4 Minor 57 %
Exit() Usage Analyze, Appinfo, OneFile, ClearPHP, All, CI-checks, ChangedBehavior, CE 49 22 Major 61 %
Failed Substr() Comparison All, Analyze, Simple, Level 3, Top10, CI-checks, ChangedBehavior, CE 1 1 Major 5 %
foreach() On Object All, Analyze 72 30 Minor 0 %
Overwritten Source And Value All, Analyze, OneFile, ChangedBehavior 1 1 Minor 0 %
Global Usage Analyze, Appinfo, ClearPHP, All, ChangedBehavior, CE 131 55 Minor 52 %
Htmlentities Calls Analyze, All, Simple, CI-checks, ChangedBehavior, CE 1 1 Major 40 %
Htmlentities Using Default Flag All, Analyze, Simple, CI-checks, ChangedBehavior 3 3 Minor 0 %
Identical Case In Switch All, Analyze, ChangedBehavior 8 1 Minor 0 %
Identical Consecutive Expression All, Analyze, ChangedBehavior 8 7 Minor 59 %
Identical Variables In Foreach All, Analyze, OneFile, ChangedBehavior 1 1 Minor 0 %
If With Same Conditions Analyze, All, Simple, CI-checks, ChangedBehavior, CE 1 1 Major 47 %
Iffectations Analyze, All, ChangedBehavior 22 12 Minor 80 %
Implied If Analyze, ClearPHP, All, Simple, CI-checks, Rector, ChangedBehavior, CE 3 3 Major 33 %
Implode() Arguments Order All, Analyze, CI-checks, ChangedBehavior, CE 1 1 Minor 0 %
Indices Are Int Or String Analyze, OneFile, All, Simple, CI-checks, ChangedBehavior, CE 127 30 Major 20 %
Infinite Recursion All, Analyze, ChangedBehavior 1 1 Major 0 %
Long Arguments All, Analyze, ChangedBehavior 116 58 Minor 68 %
Max Level Of Nesting All, Analyze, ChangedBehavior 9 7 Minor 0 %
Merge If Then All, Analyze, CI-checks, ChangedBehavior, CE 50 28 Minor 0 %
Could Merge Ternary Into Ifthen All, Analyze, ChangedBehavior 5 4 Minor 0 %
Mismatched Ternary Alternatives All, Analyze, Suggestions, Level 4, ChangedBehavior 8 5 Major 64 %
Missing Assignation In Branches All, Analyze, ChangedBehavior 122 60 Minor 0 %
Missing Cases In Switch All, Analyze, ChangedBehavior 2 2 Minor 36 %
Maybe Missing New All, Analyze, ChangedBehavior 1 1 Critical 57 %
Mixed Concat And Interpolation All, Coding Conventions, Analyze 2 2 Minor 45 %
Modernize Empty With Expression All, Analyze, OneFile, Simple, ChangedBehavior 91 29 Minor 63 %
Multiple Type Variable All, Analyze, Level 4, ChangedBehavior 16 6 Minor 58 %
Multiply By One Analyze, OneFile, ClearPHP, All, Simple, Level 1, CI-checks, Rector, CE 1 1 Minor 44 %
Nested Ifthen Analyze, All, RadwellCodes, ChangedBehavior 63 35 Major 84 %
Don't Change Incomings Analyze, All, ChangedBehavior 27 9 Minor 44 %
No Choice Analyze, All, Simple, Level 2, Top10, CI-checks, Rector, ChangedBehavior, CE 2 1 Major 42 %
No Empty String With explode() All, Analyze, ChangedBehavior 1 1 Minor 0 %
No isset() With empty() All, PHP recommendations, Analyze, OneFile, RadwellCodes, Simple, Level 4, CI-checks, ChangedBehavior, CE 6 3 Minor 30 %
No Need For Else All, Analyze, ChangedBehavior 33 28 Minor 74 %
No Null For Index All, Analyze, ChangedBehavior 8 2 Minor 0 %
No Parenthesis For Language Construct Analyze, ClearPHP, All, RadwellCodes, Simple, Suggestions, Level 2, CI-checks, ChangedBehavior, CE 11 9 Minor 62 %
Avoid Substr() One Analyze, Performances, All, CompatibilityPHP71, Simple, Level 2, Suggestions, Top10, CI-checks, ChangedBehavior, CE 1 1 Minor 58 %
Variable Is Not A Condition All, Analyze, ChangedBehavior 592 116 Minor 93 %
Non Integer Nor String As Index All, Analyze, ChangedBehavior 2 2 Minor 0 %
@ Operator Appinfo, ClearPHP, All, Analyze, Performances, CI-checks, ChangedBehavior, CE 1 1 Minor 65 %
include_once() Usage Analyze, Appinfo, All, ChangedBehavior, CE 9 5 Minor 73 %
Several Instructions On The Same Line Analyze, All, ChangedBehavior 53 24 Major 56 %
Print And Die Analyze, All, Simple, CI-checks, ChangedBehavior, CE 4 3 Minor 32 %
Repeated print() Analyze, All, Simple, Suggestions, Level 3, Top10, CI-checks, ChangedBehavior, CE 25 11 Major 50 %
Repeated Regex All, Analyze, Level 1, CI-checks, ChangedBehavior, CE 3 3 Minor 47 %
Return True False Analyze, All, Simple, Level 1, CI-checks, ChangedBehavior, CE 2 2 Major 46 %
Same Conditions In Condition Analyze, All, Simple, CI-checks, ChangedBehavior, CE 2 2 Critical 55 %
Should Use Ternary Operator All, Analyze, OneFile, Simple, CI-checks, ChangedBehavior, CE 46 33 Minor 86 %
Preprocessable Analyze, All, Rector, ChangedBehavior 207 115 Minor 85 %
Static Inclusions All, Analyze, ChangedBehavior 9 5 Minor 0 %
Static Loop Analyze, All, Simple, Level 4, ChangedBehavior 3 2 Minor 67 %
Strpos()-like Comparison Analyze, PHP recommendations, ClearPHP, All, Simple, Level 2, Top10, CI-checks, ChangedBehavior, CE 1 1 Major 54 %
Switch To Switch Analyze, All, RadwellCodes, Simple, ChangedBehavior 5 5 Minor 58 %
Switch Without Default Analyze, ClearPHP, All, Simple, CI-checks, ChangedBehavior, CE 19 14 Major 69 %
Test Then Cast All, Analyze, ChangedBehavior 1 1 Major 34 %
Timestamp Difference Analyze, All, Simple, Level 3, CI-checks, ChangedBehavior, CE 3 1 Major 49 %
Unconditional Break In Loop All, Analyze, Level 3, CI-checks, CE 1 1 Major 48 %
Unsupported Operand Types All, PHP recommendations, Analyze, ChangedBehavior 1 1 Minor 0 %
Unused Global Analyze, All, Simple, Unused, ChangedBehavior 2 1 Minor 22 %
Use Positive Condition All, Analyze, OneFile, Simple, ChangedBehavior 16 15 Minor 82 %
Useless Type Casting All, PHP recommendations, Analyze, OneFile, RadwellCodes, Simple, Level 4, CI-checks, ChangedBehavior, CE 20 13 Minor 47 %
Useless Global Analyze, OneFile, All, Simple, Level 2, ChangedBehavior 17 15 Minor 27 %
Useless Instructions Analyze, OneFile, ClearPHP, All, Simple, Level 1, CI-checks, ChangedBehavior, CE 24 20 Minor 63 %
Useless Parenthesis Analyze, All, Simple, CI-checks, ChangedBehavior, CE 20 14 Minor 81 %
Useless Switch Analyze, All, Simple, ChangedBehavior 1 1 Major 32 %
Should Typecast Analyze, OneFile, All, Simple, CI-checks, Rector, ChangedBehavior, CE 46 23 Minor 49 %
String May Hold A Variable Analyze, All, Simple, ChangedBehavior 4 2 Minor 59 %
Missing Some Returntype All, Typehints, Analyze, CI-checks, ChangedBehavior, CE 22 19 Minor 0 %
StandaloneType True False Null All, Appcontent, Analyze, ChangedBehavior 3 3 Minor 0 %
Assigned Twice All, Analyze, ChangedBehavior 199 52 Minor 79 %
Overwritten Literals Analyze, All, ChangedBehavior 238 52 Major 79 %
Undefined Variable All, Analyze, CI-checks, Undefined, CE 598 57 Minor 77 %
Used Once Variables Analyze, OneFile, All, Simple, Top10, ChangedBehavior 18 10 Minor 74 %
Used Once Variables (In Scope) Analyze, ClearPHP, OneFile, All, Simple, Level 4, ChangedBehavior, CE 2731 157 Minor 95 %
Written Only Variables Analyze, OneFile, All, Simple, Unused, ChangedBehavior 71 35 Minor 87 %