Ambiguous Array Index |
Short Syntax For Arrays |
Float Conversion As Index |
Getting Last Element |
Mixed Keys Arrays |
Multiple Index Definition |
Negative Start Index In Array |
No Spread For Hash |
Non-constant Index In Array |
Null Or Boolean Arrays |
Randomly Sorted Arrays |
Slice Arrays First |
String Initialization |
Too Many Array Dimensions |
Missing Attribute Attribute |
Modify Immutable |
Nested Attributes |
Abstract Or Implements |
Abstract Static Methods |
Accessing Private |
Access Protected Structures |
Ambiguous Static |
Ambiguous Visibilities |
Anonymous Classes |
Avoid option arrays in constructors |
Avoid Optional Properties |
Can't Extend Final |
Cant Inherit Abstract Method |
Cant Instantiate Class |
Cant Overwrite Final Constant |
Check On __Call Usage |
Child Class Removes Typehint |
Class, Interface, Enum Or Trait With Identical Names |
Clone With Non-Object |
Const Visibility Usage |
Could Be Abstract Class |
Class Could Be Final |
Method Could Be Static |
Cyclic References |
Dependant Abstract Classes |
Different Argument Counts |
No Direct Call To Magic Method |
Don't Send $this In Constructor |
Don't Unset Properties |
Empty Classes |
Final Private Methods |
Hidden Nullable Typehint |
Implement Is For Interface |
Implemented Methods Are Public |
Incompatible Signature Methods |
Incompatible Signature Methods With Covariance |
Inherited Property Type Must Match |
Instantiating Abstract Class |
Integer As Property |
Assign Default To Properties |
Make Global A Property |
Make Magic Concrete |
Method Signature Must Be Compatible |
Mismatch Properties Typehints |
Missing Abstract Method |
Multiple Class Declarations |
Multiple Identical Trait Or Interface |
No Magic Method With Array |
self, parent, static Outside Class |
Class Without Parent |
No Public Access |
No Self Referencing Constant |
Non Nullable Getters |
Forgotten Visibility |
Non Static Methods Called In A Static |
Null On New |
Old Style Constructor |
Var Keyword |
Parent First |
Property Could Be Local |
Never Used Properties |
Property Used In One Method Only |
Parent, Static Or Self Outside Class |
Scalar Or Object Property |
Could Use self |
Should Use Local Class |
Static Methods Can't Contain $this |
Static Methods Called From Object |
Swapped Arguments |
$this Belongs To Classes Or Traits |
$this Is Not An Array |
$this Is Not For Static Methods |
Throw In Destruct |
Too Many Dereferencing |
Too Many Finds |
Too Many Injections |
Wrong Access Style to Property |
Undefined Classes |
Undefined Class Constants |
Undefined Parent |
Undefined Properties |
Undefined static:: Or self:: |
Undefined ::class |
Unfinished Object |
Unreachable Method |
Unresolved Classes |
Unresolved Instanceof |
Unused Classes |
Unused Class Constant |
Use ::Class Operator |
Use Instanceof |
Used Once Property |
Useless Abstract Class |
Useless Constructor |
Useless Final |
Using $this Outside A Class |
Weak Typing |
Illegal Name For Method |
Wrong Typed Property Default |
Magic Visibility |
Bad Constants Names |
Case Insensitive Constants |
Use const |
Constants Created Outside Its Namespace |
Invalid Constant Name |
Multiple Constant Definition |
Strange Name For Constants |
Undefined Constants |
Undefined Enumcase |
Can't Throw Throwable |
Catch Undefined Variable |
Forgotten Thrown |
Multiple Exceptions Catch() |
Overwritten Exceptions |
Throw Functioncall |
Uncaught Exceptions |
Unthrown Exception |
Useless Catch |
ext/apc |
ext/dba |
ext/ereg |
ext/fdf |
ext/mcrypt |
ext/mhash |
ext/ming |
ext/mysql |
Inclusion Wrong Case |
Missing Include |
Native Alias Functions Usage |
Use Named Boolean In Argument Definition |
Callback Function Needs Return |
Cancelled Parameter |
Cannot Use Static For Closure |
Closure Could Be A Callback |
Could Make A Function |
Deep Definitions |
Dont Collect Void |
Duplicate Named Parameter |
Empty Function |
Fn Argument Variable Confusion |
Generator Cannot Return |
Hardcoded Passwords |
Insufficient Typehint |
Mismatch Parameter And Type |
Mismatch Parameter Name |
Mismatch Type And Default |
Mismatched Default Arguments |
Mismatched Typehint |
Modified Typed Parameter |
Multiple Definition Of The Same Argument |
Must Return Methods |
Never Called Parameter |
No Boolean As Default |
No Literal For Reference |
No Referenced Void |
No Return Used |
Nullable With Constant |
Only Variable For Reference |
Only Variable Passed By Reference |
Redeclared PHP Functions |
Relay Function |
Should Use Existing Constants |
Should Yield With Key |
Too Many Local Variables |
Typehint Must Be Returned |
Typehinted References |
Unbinding Closures |
Undefined Functions |
Unknown Parameter Name |
Unused Parameter |
Unused Inherited Variable In Closure |
Unused Returned Value |
Use Constant As Arguments |
Use Constants As Returns |
Useless Referenced Argument |
Useless Return |
Uses Default Values |
Using Deprecated Method |
Methods Without Return |
Wrong Argument Name With PHP Function |
Wrong Argument Type |
Wrong Number Of Arguments |
Wrong Optional Parameter |
Wrong Type Returned |
Wrong Type With Call |
func_get_arg() Modified |
Already Parents Interface |
Cant Implement Traversable |
Cant Overload Constants |
Concrete Visibility |
Forgotten Interface |
Empty Interfaces |
Interfaces Is Not Implemented |
Interfaces Don't Ensure Properties |
Repeated Interface |
Undefined Interfaces |
Useless Interfaces |
Fully Qualified Constants |
Empty Namespace |
Hidden Use Expression |
Multiple Alias Definitions Per File |
Multiple Alias Definitions |
Should Make Alias |
Unresolved Use |
Use Const And Functions |
Use With Fully Qualified Name |
array_key_exists() Speedup |
No array_merge() In Loops |
Autoappend |
Avoid array_push() |
Cache Variable Outside Loop |
Scope Resolution Operator |
fputcsv() In Loops |
Do In Base |
Double array_flip() |
Fetch One Row Format |
Isset() On The Whole Array |
Joining file() |
Logical To in_array |
Make One Call With Array |
No mb_substr In Loop |
Memoize MagicCall |
Avoid Concat In Loop |
Avoid glob() Usage |
No Count With 0 |
Optimize Explode() |
Use PHP7 Encapsed Strings |
Always Use Function With array_key_exists() |
Pre-increment |
Regex On Arrays |
Processing Collector |
Simple Switch |
Simplify Foreach |
Slow Functions |
Static Call May Be Truly Static |
strpos() Too Much |
Substring First |
Use array_slice() |
Use The Blind Var |
time() Vs strtotime() |
array_key_exists() Works On Arrays |
Assert Function Is Reserved |
Assign With And Precedence |
Assumptions |
Avoid get_object_vars() |
Avoid mb_dectect_encoding() |
Avoid set_error_handler $context Argument |
Use random_int() |
Cant Use Return Value In Write Context |
Use Lower Case For Parent, Static And Self |
Cast Unset Usage |
Class Const With Array |
Closure May Use $this |
Coalesce Equal |
Nonexistent Variable In compact() |
Concat And Addition |
Const With Array |
Crc32() Might Be Negative |
Define With Array |
Deprecated PHP Functions |
Detect Current Class |
Direct Call To __clone() |
Don't Pollute Global Space |
Ellipsis Usage |
Empty List |
Enum Usage |
Exponent Usage |
False To Array Conversion |
$FILES full_path |
Filter To add_slashes() |
Final Constant |
Flexible Heredoc |
Wrong fopen() Mode |
Foreach Don't Change Pointer |
Foreach On Object |
Simple Global Variable |
Group Use Declaration |
Group Use Trailing Comma |
Hash Algorithms |
Hash Algorithms Incompatible With PHP 5.3 |
Hash Algorithms Incompatible With PHP 5.4/5.5 |
Hash Algorithms Incompatible With PHP 7.1- |
Hash Algorithms Incompatible With PHP 7.4- |
Hash Will Use Objects |
idn_to_ascii() New Default |
Incompilable Files |
Numeric Literal Separator |
Wrong Parameter Type |
Is_A() With String |
Use === null |
JsonSerialize() Mixed Return Type |
List Short Syntax |
List With Appends |
List With Keys |
List With Reference |
Logical Should Use Symbolic Operators |
Methodcall On New |
Missing __isset() Method |
Possible Missing Subpattern |
Mixed Keyword |
Multiple Declaration Of Strict_types |
Must Call Parent Constructor |
Named Parameter Usage |
PHP Native Class Type Compatibility |
Nested Ternary Without Parenthesis |
Never Keyword |
Never Typehint Usage |
New Initializers |
No Class In Global |
No List With String |
No More Curly Arrays |
No Null For Native PHP Functions |
No Reference For Static Property |
No Reference For Ternary |
No Return For Generator |
No String With Append |
No Substr Minus One |
Only Container For Reference |
PHP 7.0 Scalar Typehints |
PHP 7.1 Scalar Typehints |
PHP 7.2 Scalar Typehints |
PHP 7.3 Last Empty Argument |
PHP 8.0 Typehints |
PHP 8.1 Typehints |
Parenthesis As Parameter |
Use password_hash() |
Pathinfo() Returns May Vary |
New Functions In PHP 5.4 |
Functions Removed In PHP 5.4 |
New Functions In PHP 5.5 |
Functions Removed In PHP 5.5 |
New Functions In PHP 5.6 |
PHP 7.0 New Classes |
New Functions In PHP 7.0 |
PHP 7.0 New Interfaces |
PHP 7.0 Removed Directives |
PHP 7.0 Removed Functions |
Php 7.1 New Class |
New Functions In PHP 7.1 |
PHP 7.1 Removed Directives |
PHP 7.1 Microseconds |
PHP 7.2 Deprecations |
Php 7.2 New Class |
New Constants In PHP 7.2 |
New Functions In PHP 7.2 |
PHP 7.2 Object Keyword |
PHP 7.2 Removed Functions |
New Functions In PHP 7.3 |
PHP 7.3 Removed Functions |
PHP 7.4 Constant Deprecation |
Php 7.4 New Class |
New Constants In PHP 7.4 |
PHP 74 New Directives |
New Functions In PHP 7.4 |
PHP 7.4 Removed Directives |
PHP 7.4 Removed Functions |
PHP 7.4 Reserved Keyword |
mb_strrpos() Third Argument |
Php7 Relaxed Keyword |
PHP 80 Named Parameter Variadic |
New Functions In PHP 8.0 |
Php 8.0 Only TypeHints |
PHP 8.0 Removed Constants |
PHP 8.0 Removed Directives |
PHP 8.0 Removed Functions |
PHP 8.0 Resources Turned Into Objects |
Union Typehint |
Php 8.0 Variable Syntax Tweaks |
New Functions In PHP 8.1 |
$php_errormsg Usage |
$HTTP_RAW_POST_DATA Usage |
Reflection Export() Is Deprecated |
Reserved Keywords In PHP 7 |
Reserved Match Keyword |
Scalar Are Not Arrays |
set_exception_handler() Warning |
Short Open Tags |
Should Use array_column() |
Should Use Coalesce |
Should Use Function |
Signature Trailing Comma |
::class |
String Int Comparison |
Strtr Arguments |
Throw Was An Expression |
Too Many Native Calls |
Trailing Comma In Calls |
Typed Property Usage |
Unicode Escape Partial |
Unicode Escape Syntax |
Unknown Pcre2 Option |
Unpacking Inside Arrays |
Uses PHP 8 Match() |
Use Nullable Type |
Use PHP Object API |
Use Pathinfo |
Use pathinfo() Arguments |
Should Use SetCookie() |
Avoid Using stdClass |
Usort Sorting In PHP 7.0 |
Wrong Attribute Configuration |
Wrong Type For Native PHP Function |
__debugInfo() Usage |
Old Style __autoload() |
Always Anchor Regex |
Avoid Those Hash Functions |
Compare Hash |
Configure Extract |
Check Crypto Key Length |
Safe Curl Options |
Direct Injection |
Don't Echo Error |
Dynamic Library Loading |
Encoded Simple Letters |
filter_input() As A Source |
Indirect Injection |
Insecure Integer Validation |
Keep Files Access Restricted |
Minus One On Error |
Mkdir Default |
move_uploaded_file Instead Of copy |
No ENT_IGNORE |
No Net For Xml Load |
Avoid sleep()/usleep() |
No Weak SSL Crypto |
Register Globals |
Safe HTTP Headers |
Session Lazy Write |
Set Cookie Safe Arguments |
Should Use Prepared Statement |
Should Use session_regenerateid() |
Sqlite3 Requires Single Quotes |
Unserialize Second Arg |
Upload Filename Injection |
parse_str() Warning |
Adding Zero |
Altering Foreach Without Reference |
Alternative Syntax Consistence |
Comparison Is Always True |
Array_Fill() With Objects |
Array_Map() Passes By Value |
array_merge() And Variadic |
Array_merge Needs Array Of Arrays |
Assign And Compare |
Same Variable Foreach |
Bail Out Early |
Strict Comparison With Booleans |
Break With 0 |
Break With Non Integer |
Break Outside Loop |
Buried Assignation |
Calltime Pass By Reference |
Can't Count Non-Countable |
Cast To Boolean |
Casting Ternary |
Catch Overwrite Variable |
Check All Types |
Check Division By Zero |
Check JSON |
Coalesce And Concat |
Common Alternatives |
Compared Comparison |
Concat Empty String |
Constant Scalar Expressions |
Continue Is For Loop |
Could Be Else |
Could Be Static |
Could Use __DIR__ |
Could Use Short Assignation |
Could Use str_repeat() |
crypt() Without Salt |
curl_version() Has No Argument |
Dangling Array References |
Dereferencing String And Arrays |
__DIR__ Then Slash |
Dont Add Seconds |
Dont Change The Blind Var |
Dont Mix ++ |
Don't Read And Write In One Expression |
Dont Reuse Foreach Source |
Double Assignation |
Double Instructions |
Double Object Assignation |
Drop Else After Return |
Echo With Concat |
Else If Versus Elseif |
Empty Blocks |
Empty Instructions |
Empty Try Catch |
error_reporting() With Integers |
Eval() Usage |
eval() Without Try |
Exit() Usage |
Failed Substr Comparison |
Switch Fallthrough |
For Using Functioncall |
Foreach Reference Is Not Modified |
Overwritten Source And Value |
Foreach With list() |
Forgotten Whitespace |
Function Subscripting |
Global Inside Loop |
Global Usage |
Htmlentities Calls |
Htmlentities Using Default Flag |
Identical Conditions |
Identical Consecutive Expression |
Identical On Both Sides |
Identical Variables In Foreach |
If With Same Conditions |
Iffectations |
Implied If |
Implode() Arguments Order |
Inconsistent Elseif |
Indices Are Int Or String |
Infinite Recursion |
Invalid Pack Format |
Invalid Regex |
Is Actually Zero |
isset() With Constant |
list() May Omit Variables |
Logical Mistakes |
Lone Blocks |
Long Arguments |
Max Level Of Nesting |
Mbstring Third Arg |
Mbstring Unknown Encoding |
mcrypt_create_iv() With Default Values |
Merge If Then |
Mismatched Ternary Alternatives |
Missing Cases In Switch |
Maybe Missing New |
Missing Parenthesis |
Mixed Concat And Interpolation |
Modernize Empty With Expression |
Multiples Identical Case |
Multiple Type Variable |
Multiply By One |
Negative Power |
Nested Ifthen |
Nested Loops |
Nested Ternary |
Always Positive Comparison |
Next Month Trap |
No Append On Source |
Avoid array_unique() |
Avoid Large Array Assignation |
Don't Change Incomings |
No Choice |
No Direct Usage |
No Empty Regex |
No get_class() With Null |
No Hardcoded Hash |
No Hardcoded Ip |
No Hardcoded Path |
No Hardcoded Port |
No isset() With empty() |
No Need For Else |
No Need For Triple Equal |
No Object As Index |
No Parenthesis For Language Construct |
No Reference On Left Side |
No Return Or Throw In Finally |
Avoid Substr() One |
Variable Is Not A Condition |
@ Operator |
Not Equal Is Not !== |
Not Not |
Objects Don't Need References |
include_once() Usage |
Several Instructions On The Same Line |
Only First Byte |
Only Variable Returned By Reference |
openssl_random_pseudo_byte() Second Argument |
Or Die |
Overwritten Foreach Var |
PHP7 Dirname |
Phpinfo |
Possible Infinite Loop |
Print And Die |
Avoid Parenthesis |
Printf Number Of Arguments |
Queries In Loops |
Random Without Try |
Repeated print() |
Repeated Regex |
Results May Be Missing |
Return True False |
Same Conditions In Condition |
Setlocale() Uses Constants |
Should Chain Exception |
Should Make Ternary |
Preprocessable |
Should Use Explode Args |
Simplify Regex |
Static Loop |
strip_tags Skips Closed Tag |
Strpos()-like Comparison |
Suspicious Comparison |
Switch To Switch |
Switch With Too Many Default |
Switch Without Default |
Ternary In Concat |
Test Then Cast |
Throws An Assignement |
Timestamp Difference |
Unchecked Resources |
Unconditional Break In Loop |
Unkown Regex Options |
Unpreprocessed Values |
Unset In Foreach |
Unsupported Types With Operators |
Unused Global |
Use Constant |
Avoid get_class() |
Use Positive Condition |
Use System Tmp |
Useless Brackets |
Useless Type Casting |
Useless Check |
Useless Global |
Useless Instructions |
Useless Parenthesis |
Useless Switch |
Useless Unset |
var_dump()... Usage |
Variable Global |
While(List() = Each()) |
Wrong Range Check |
preg_replace With Option e |
__toString() Throws Exception |
Already Parents Trait |
Cannot Call Trait Method Directly |
Dependant Trait |
Empty Traits |
Method Collision Traits |
Trait Not Found |
Undefined Insteadof |
Undefined Trait |
Useless Method Alias |
Binary Glossary |
Hexadecimal In String |
Malformed Octal |
No Real Comparison |
Invalid Octal In String |
One Variable String |
Should Typecast |
Silently Cast Integer |
String May Hold A Variable |
Strings With Strange Space |
Missing Some Returntype |
Assigned Twice |
Constant Typo Looks Like A Variable |
Lost References |
Overwritten Literals |
PHP5 Indirect Variable Expression |
Php 7 Indirect Expression |
Recycled Variables |
Undefined Constant Name |
Undefined Variable |
Non Ascii Variables |
Used Once Variables |
Used Once Variables (In Scope) |
Written Only Variables |