4 ms·
I'd like to combine and expand on a few answers you got. Firstly: > bugs that a typed language would prevent This sounds like you think PHP isn't typed. It is
by user3939382 4y ago
I'd like to combine and expand on a few answers you got. Firstly:
> bugs that a typed language would prevent
This sounds like you think PHP isn't typed. It is, and with 8.1 (and even more so 8.2) the type system isn't exactly Haskell (ha) but gets much stronger than it historically has been for PHP.
You enable a feature called strict_types which enforces these rules.
Then you have a layer of even more powerful type checking and analysis which, though not enforced at the runtime level, is picked up and validated against by your IDE's real-time (or async external) static analysis tools. This is partially in phpDoc and there are various ways to do it.
Then, besides static analysis with popular tools like PHPStan or Psalm, there are nice inspection tools like EAInspections, Sonar, etc that check for hundreds of possible errors, code smells, style issues, etc.
Large, professional PHP codebases are not a big wild west of implicit coerced dynamic types. For my own projects, I consider any avoidable reliance on PHP's dynamic typing a bug, i.e. casting null to bool in conditionals.
- jw1224 4y agoI wrote awful untyped PHP 5.6 code for many years, using CodeIgniter and a very basic editor. Fully embracing PHPStorm, strict_types and EAInspections completely changed me as a developer. I hated them at first, just getting in the way and annoying me… But now several years later and I fully credit them for revitalising my career and giving me a newfound love for coding.