| Ambiguous Array Index |
| Short Syntax For Arrays |
| Getting Last Element |
| Mixed Keys Arrays |
| Multiple Index Definition |
| 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 |
| 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 |
| Check On __Call Usage |
| Child Class Removes Typehint |
| Class, Interface Or Trait With Identical Names |
| Clone With Non-Object |
| Const Visibility Usage |
| Constant Class |
| Could Be Abstract Class |
| Class Could Be Final |
| Method Could Be Static |
| Cyclic References |
| Dependant Abstract Classes |
| No Direct Call To Magic Method |
| Don't Send $this In Constructor |
| Don't Unset Properties |
| Empty Classes |
| Class Should Be Final By Ocramius |
| Hidden Nullable |
| Implement Is For Interface |
| Implemented Methods Are Public |
| Incompatible Signature Methods |
| Incompatible Signature Methods With Covariance |
| 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 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 |
| Redefined Class Constants |
| Redefined Default |
| Redefined Private Property |
| Scalar Or Object Property |
| Could Use self |
| Should Use Local Class |
| Static Methods Can't Contain $this |
| Static Methods Called From Object |
| $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 |
| 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 Init |
| Magic Visibility |
| Bad Constants Names |
| Case Insensitive Constants |
| Use const |
| Constants With Strange Names |
| Constants Created Outside Its Namespace |
| Invalid Constant Name |
| Multiple Constant Definition |
| Strange Name For Constants |
| Undefined Constants |
| 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 |
| Aliases Usage |
| Use Named Boolean In Argument Definition |
| Callback Needs Return |
| Closure Could Be A Callback |
| Could Make A Function |
| Deep Definitions |
| Dont Collect Void |
| Empty Function |
| Fn Argument Variable Confusion |
| Generator Cannot Return |
| Hardcoded Passwords |
| Insufficient Typehint |
| Mismatch Type And Default |
| Mismatched Default Arguments |
| Mismatched Typehint |
| Multiple Definition Of The Same Argument |
| Must Return Methods |
| Never Used Parameter |
| No Boolean As Default |
| No Literal For Reference |
| No Return Used |
| Only Variable For Reference |
| Only Variable Passed By Reference |
| Redeclared PHP Functions |
| Relay Function |
| Should Use Constants |
| Should Yield With Key |
| Too Many Local Variables |
| Typehint Must Be Returned |
| Typehinted References |
| Unbinding Closures |
| Undefined Functions |
| Unused Arguments |
| Unused Inherited Variable In Closure |
| Unused Returned Value |
| Use Constant As Arguments |
| Useless Referenced Argument |
| Useless Return |
| Uses Default Values |
| Using Deprecated Method |
| Methods Without Return |
| Wrong Argument Type |
| Wrong Number Of Arguments |
| Wrong Optional Parameter |
| Wrong Returned Type |
| Wrong Type With Call |
| func_get_arg() Modified |
| Already Parents Interface |
| Cant Implement Traversable |
| 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 |
| 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 |
| Use PHP7 Encapsed Strings |
| Always Use Function With array_key_exists() |
| Pre-increment |
| Regex On Arrays |
| Processing Collector |
| Simple Switch |
| Slow Functions |
| 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 |
| 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 |
| Class Const With Array |
| Closure May Use $this |
| Coalesce Equal |
| Compact Inexistant Variable |
| Concat And Addition |
| Const With Array |
| Crc32() Might Be Negative |
| Define With Array |
| Deprecated Functions |
| Detect Current Class |
| Direct Call To __clone() |
| Ellipsis Usage |
| Empty List |
| Exponent Usage |
| Filter To add_slashes() |
| 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 |
| List Short Syntax |
| List With Appends |
| List With Keys |
| List With Reference |
| Logical Should Use Symbolic Operators |
| Methodcall On New |
| Possible Missing Subpattern |
| Must Call Parent Constructor |
| Nested Ternary Without Parenthesis |
| No Class In Global |
| No List With String |
| No More Curly Arrays |
| No Reference For Static Property |
| No Reference For Ternary |
| No Return For Generator |
| No String With Append |
| No Substr Minus One |
| PHP 7.0 Scalar Typehints |
| PHP 7.1 Scalar Typehints |
| PHP 7.2 Scalar Typehints |
| PHP 7.3 Last Empty Argument |
| 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 |
| New Functions In PHP 8.0 |
| Php 8.0 Only TypeHints |
| PHP 8.0 Removed Constants |
| PHP 8.0 Removed Functions |
| Union Typehint |
| Php 8.0 Variable Syntax Tweaks |
| $HTTP_RAW_POST_DATA Usage |
| Reflection Export() Is Deprecated |
| Reserved Keywords In PHP 7 |
| PHP Keywords As Names |
| 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 |
| 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 |
| Php/UseMatch |
| 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 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 |
| Integer Conversion |
| 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 |
| Constant Comparison |
| array_merge() And Variadic |
| Array_merge Needs Array Of Arrays |
| Assign And Compare |
| Same Variables 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 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 Change The Blind Var |
| Dont Mix ++ |
| Don't Read And Write In One Expression |
| 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 |
| Identical Conditions |
| Identical Consecutive Expression |
| Identical On Both Sides |
| 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 |
| 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 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 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 Variable Returned By Reference |
| openssl_random_pseudo_byte() Second Argument |
| Or Die |
| 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 |
| Unused Global |
| Use Constant |
| Avoid get_class() |
| Use Positive Condition |
| Use System Tmp |
| Useless Brackets |
| Useless 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 |
| Dependant Trait |
| Empty Traits |
| Method Collision Traits |
| Trait Not Found |
| Undefined Insteadof |
| Undefined Trait |
| Useless 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 |
| Assigned Twice |
| Lost References |
| Overwritten Literals |
| PHP5 Indirect Variable Expression |
| Php 7 Indirect Expression |
| Strange Name For Variables |
| Undefined Constant Name |
| Undefined Variable |
| Non Ascii Variables |
| Used Once Variables |
| Used Once Variables (In Scope) |
| Written Only Variables |