PHP: Particularly Horrible Programs
summary
Uploader reports ~600 commits by one contributor, ~700 PRs reviewed and 104 merges; live demos show surprising engine edges: GMP boolean fix in 8.4, objects and internal extensions can override boolean and comparison casts, numeric-string quirks like "0E9" == "0", float-to-string precision changing ordering, array_intersect casting arrays to the string "Array", range and str increment/decrement producing NaN or floats, disable_functions removes built‑ins so strlen can be redefined, declare disabled_classes can segfault and session_id can behave nonconstant.
AI-written summary · about
chapters (14)
- 0:00PHP oddities intro
- 2:48Boolean casting quirks
- 6:28PHP comparison oddities
- 9:40String comparison surprises
- 13:11Array intersect casts
- 17:05Increment operator issues
- 21:24String increment madness
- 23:10Range function edge cases
- 28:51ArrayObject property issues
- 34:09Disabled classes instability
- 36:18Function disabling
- 37:21Strict types limits
- 42:07Class constants safety
- 44:12Non-constant constants
related talks
45mModernizing PHP one edge case at a time
35mPHP is evil (Defensive programming)
01h 04mPrepare Your Code for PHP 9: PHP 8 Deprecations Explained
43mPHP 5.NEXT: The New Bits
55mFantastic functions and where to find them
01h 11mPanel Discussion: PHP - The journey so far (and what's ahead)
01h 12m25 Years of PHP
49mTop 10 PHP coding traps
