1. Introduction
  2. Top 15 Most Popular Tips
  3. Author index
  4. PHP Error index
  5. Translations
  6. Tips
    ❱
    1. Hijacked version_compare()
    2. version_compare_beta_full
    3. array_is_list() Can Fool You
    4. Date Format Reading
    5. This Won't Execute
    6. Bcrypt Is Limited To 72 Characters
    7. Parsing PHP From Within
    8. eval() Kills It
    9. A Dynamic Constant
    10. list() Or array()
    11. No Coercion On Unserialize
    12. Static And Non Static Property
    13. strripos() Searches From The End
    14. Function Call As Default
    15. A Missing Subpattern
    16. Empty String Subpattern
    17. String To Int
    18. strpos() Fights Back
    19. Define Variable By Reference
    20. Named Constructor And Attribute
    21. Not An Attribute
    22. printf() With Locale
    23. Replace The n-th In A String
    24. Replace One In A String
    25. When $café != $café
    26. Leading Nor Trailing
    27. Parsing INI With PHP Options
    28. null For The Rest
    29. array_map() with NULL
    30. Check When A String Is An Integer
    31. $_FILES' type Is Not Safe
    32. Infinite Recursion
    33. An Enum With An Interface
    34. Reference In Array
    35. Duplicate Keys In JSON
    36. Binary And Back
    37. echo And print
    38. Less Arguments In Child Method
    39. strtr() Does Only One Pass
    40. basename() As A str_replace()
    41. explode() negative third argument
    42. Interface Implemented Too Low
    43. What Array Is A List
    44. Closure::getCurrent() To Reach The Closure
    45. A Non-transitive Comparison
    46. Chained Assignation Skips __get()
    47. eval() And FILE
    48. Fiber Throws Where The Fiber Is
    49. Infinite Operations
    50. array_find() And array_find_keys()
    51. Readonly Class Must Match Its Parent
    52. The undefined Keyword
    53. SQL In Memory
    54. The Unreachable Method
    55. min() And max() For Interval
    56. Extra ::class
    57. Other Types For A Property
    58. Larger Than Int
    59. Duplicate Type
    60. Yield Or Return
    61. Multiple Method In Interface
    62. Operator Overloading
    63. Three Return Errors
    64. array_unique() Is Slow
    65. Cloning Static Variable
    66. Datetime And Leap Second
    67. Silent Type Cast
    68. Objects As Keys In Foreach
    69. isset() On Uninitialized Properties
    70. Recycle Generator
    71. Of Integers And Floats
    72. max() On Strings
    73. e And Euler
    74. Closure On Constructor
    75. ++ Riddle
    76. Oversigned Integers
    77. Local Variable Cost
    78. Array Items By Value
    79. Not Set But Exists
    80. Sorting Enum
    81. Hypotenuse In Action
    82. Spaceship Always False
    83. Inverted Spaceship Results
    84. isset(), empty() And the Magic Methods
    85. Comparing Arrays And Object
    86. Mixed Compatibility
    87. Where Did The Comma Go?
    88. Argument Renaming
    89. When htmlemtities() Is Failing
    90. Static Arrow Function
    91. defined() In Action
    92. expm1() And log1p()
    93. Is A Class Constant Set?
    94. preg_split() Magic
    95. Comparing NAN
    96. array_unique() And Enum
    97. Display A Tree Natively
    98. Speed Up CSV Write To Disk
    99. php://memory And Maxmemory
    100. ::parent Operator
    101. Stuttering PHP
    102. Riddle: $this<-code
    103. Multiple Const Types
    104. Replacing PHP http Wrapper
    105. Cast But Not A Cast
    106. Hexadecimal Separator
    107. Call echo With Commas
    108. Reusing Decimals For Bananas
    109. Where To Put The Cast?
    110. Unpacking A Single Element Array
    111. Abstract Or Not
    112. (int) And (ant)
    113. Cast In Const
    114. global Overwrites
    115. Property Hooks And Default Values
    116. Static And Not Static Method
    117. intval() And Its Arguments
    118. Easy Map
    119. Returning Void
    120. Casting An Enum Case
    121. Dynamic Class Constant Edge Cases
    122. Dynamic Enum Cases
    123. Yield And Keys
    124. Array Callback Index
    125. Time Of Closure Creation
    126. Coalesce And The Fatal Error
    127. Weakmap And Enums
    128. parent In Function
    129. isset() And The Fatal Error
    130. All PHP Dereferencements
    131. No Property Beyond Limits
    132. Can't Be Compatible With Less Arguments
    133. Arrow Functions Import Variables By Values
    134. Never Is The Lowest Ranking Type
    135. The Never Function Arrow
    136. No Rewrite For Exit
    137. Alias Conflicts
    138. Not All Incremented Strings Are Deprecated
    139. get_class() Or ::class?
    140. No Binding But With Original
    141. Infinite foreach()
    142. Who Modifies This Property?
    143. mixed Is Not No Type
    144. The Recursive array_merge()
    145. $GLOBALS Is Not Defined
    146. Cast Private To Array
    147. Properties In Interfaces
    148. Bitwise Operations On String
    149. Typed Variables
    150. Type And Reference
    151. Chaining Spaceship
    152. parse_str() Edge Cases
    153. Cast A Closure To Array
    154. list() Does Not Type
    155. Triple Plus Operator
    156. Function Name In A Method
    157. PHP Quine
    158. Named Parameter In An Array
    159. self Is A Valid Type On A Closure
    160. Keep Interface New Argument Compatible
    161. Undefined Constant A On Its Line Of Definition
    162. http_build_query() And Enumerations
    163. Cannot indirectly modify readonly
    164. Ellipsis And Coalesce
    165. namespace namespace
    166. Namespace, But Far In The Name
    167. No Hidden Nullable
    168. Remove Last Item In An Array
    169. Cancelling Native Function
    170. Classes Constant Disambiguation With Parenthesis
    171. compact() Is Recursive
    172. No Final Parameter
    173. Is Not A NAN
    174. Impossible Named Arguments
    175. func_get_args() Skips Variadic
    176. Ellipsis With Array Parameters
    177. Named Parameter Inheritance
    178. __invoke() On New
    179. Method Or Property?
    180. No More Class _
    181. Method Not Property Name Must Be String
    182. Static Properties
    183. The New And The Parenthesis
    184. Fluent Function
    185. Cannot Use Isset On Expression, So Use What?
    186. Constant Redefinition
    187. No Class Constant In String
    188. Return Int Not Bool
    189. By Reference, Error Or Notice?
    190. Call Function With Strings
    191. Non Empty Match
    192. Named Sqlite3 In Memory
    193. Variable Creation
    194. All Enum Cases
    195. Unicode Comments
    196. Datetime Object, And Years
    197. Escaping A Regex
    198. Every Anonymous Class Is Different
    199. instanceof With Variables
    200. Undefined Variable
    201. Compatible Signature
    202. private Is Relaxed
    203. Class Implement No More
    204. Variadic Are Typed And Defaulted
    205. array_column() To Hash
    206. \array Was Customizable
    207. array Is Not An Array
    208. array_map_assoc() With Keys
    209. array_map() Goes Full Throttle
    210. Typed Array
    211. Initialize Readonly On Child
    212. Silent Optimisation Of Variables
    213. Modify String With Array Syntax
    214. No Force Object To String
    215. __invoke() Method And Properties
    216. Constructor Needed
    217. No Self Referencing Constants
    218. Deanonymize Class
    219. Noscream On Ellipsis
    220. Incompatible Promoted Readonly
    221. Where Is The Semicolon?
    222. Self As Attribute
    223. Reading Micro-seconds
    224. Promoted Properties Compatibility
    225. Enum Are Not Linted
    226. Sorting With Minus
    227. Override With Interface
    228. Send An Argument To Generator
    229. PHP Integer Format
    230. Compatible Only Interface
    231. No Cast In Constant Expressions
    232. Lots Of Silly Arguments
    233. Child Of Attribute Is Not An Attribute
    234. Dynamic Class Constant
    235. The Function Method
    236. Match() With Multiple Values
    237. Interfaces Constants Conflicts
    238. Foreach() Skips Uninitialized Properties
    239. Casting And Power
    240. Attribute Without Class
    241. Class Is A Valid Type
    242. Float Precision
    243. Store Float As Index
    244. Case Insensitive Cast
    245. $this $this
    246. No Returntype But Still, Only String
    247. No Unknown For array_merge()
    248. No Returntype Enforced
    249. As As As
    250. No DNF For Catch
    251. new On Object
    252. Unfinished Class Doesn't Compile
    253. Yield, Not Return By Reference
    254. class_exists() With Enums
    255. No Semicolon In Sight
    256. glob() With Hidden Files
    257. A Function Called file_append_contents()
    258. array_reduce() To Filter And Alter
    259. $this Is Not Of The Current Class
    260. Class Constants With Different Types
    261. No Change To $this
    262. file_put_contents() With Array Argument
    263. Get The Generator
    264. Redefine Native Functions
    265. A Static Method Cannot Call A Non Static Method
    266. Declared Before Or After
    267. Cast Is So Strong
    268. Roman Loops
    269. Finally Catches Exception
    270. Always Compatible Variadic
    271. Yield, Not Return
    272. try, catch, finally Are All Optional
    273. null Or Boolean As Array
    274. Hide Sensitive Parameter
    275. No Property In Interface
    276. The Uncallable Function
    277. Easy Wither Call
    278. Array Is Full
    279. Const Without Parenthesis
    280. Cast Are Case Insensitive
    281. Array And Object Syntax, Not The Same Error
    282. When Space Matters
    283. array array = array()
    284. Cannot Yield And Never
    285. Class Invasion Both Ways
    286. Typed By Enum
    287. Change A Static Variable Outside Its Function
    288. Scalar Types Are Unqualified
    289. array_append() And Short Assignation
    290. Coalesce And Null
    291. All Classes Aliases
    292. Mixed And Untyped Are Not Compatible Types
    293. Abstract Constants
    294. Cannot Static Static Property
    295. More Attribute Usage
    296. Run Any Script In A Phar
    297. Static Variable Outside A Method
    298. Enumeration's Cases Comparisons
    299. All Static Curly Syntaxes And One Wrong
    300. No Such Function As Empty
    301. Strange --> Operator
    302. Unexpected Keys In Array
    303. Recursive Generator
    304. Documenting Parameters
    305. Catch Is Optional
    306. Void Parameter In array_keys()
    307. Unsetting Properties Surprises
    308. Multiple Aliases
    309. Plus Plus Minus Minus
    310. Constants Can Be Impossible
    311. Constants Are Mutable
    312. Quick DTO Or VO Copy
    313. Stealth Generator
    314. Quick Serialize
    315. Clone Clone Clone
    316. Set readonly Properties Outside The Class
    317. Exception Polymorphism
    318. Exponential Minus One
    319. PHP Infinity Is Reachable
    320. Negative Squares
    321. Negating An Assignation
    322. Numeric Separators Inside A String?
    323. Identifier Confusions
    324. Relaxed Syntax With Const
    325. Closure To Call
    326. Get $this In A Static
    327. How To array_intersect_uassoc_insensitive()
    328. Class And Constant Confusion
    329. Don't Forget To Yield
    330. Inconsistent Constructor Signatures
    331. foreach() With All The Same Keys
    332. Battle Of Definition
    333. Variadic All The Yields
    334. Refactoring strpos()
    335. is_a() Versus Instanceof
    336. Exporting Properties
    337. Another Cast To Int
    338. ReturnTypeWillChange Is For All
    339. URL As Comments
    340. Coalesce And Assignation
    341. Missing Methods Are Fatal
    342. Only Initialize With Short Assignation Coalesce
    343. Keys Are Integers Whenever Possible
    344. Fast Creation Of stdClass Objects
    345. An Elephpant In The Code
    346. Internal Static Call
    347. strict_types Exceptions
    348. Playing With Integers Limits
    349. Signature Compatibility Exception
    350. Object Is Not A Type
    351. Forgotten Throw
    352. Keywords In Namespaces
    353. No Warning For Unused Variables
    354. Self In An Interface
    355. instanceof Object
    356. stdClass Object
    357. A Case Of Misplaced Parenthesis
    358. Checking For Names At Different Times
    359. Integer Becomes Negative
    360. Not All Strings In Arrays
    361. Recursive Arrow Function
    362. null Does Not Always Equal false
    363. Recursive Closure
    364. Cast Precedence
    365. Enum As A Name
    366. Type Is Not Always Returned
    367. The Namespace Stack
    368. Catch On Interfaces