Re:A look at modern PHP
by out_of_protocol on Tuesday May 05, 2020 @08:35AM
(#23079323)
Sometimes "==" is used under the hood ( switch/case i think?) and it's hard to avoid it completely even if you always use "===" in the code
[ Parent
| on HN ]
Re:A look at modern PHP
by mywittyname on Tuesday May 05, 2020 @11:19AM
(#23080939)
You don't need to use switches. In fact, I'd argue that if blocks are better if you're evaluating against variable data types. Alternatively, if you really, really want to use a switch statement and loose typing might cause issues, it's pretty easy to compare types before the switch statement, e.g,
if(gettype($a) !== "...") { return false; }
switch($a) { ... }
Re:A look at modern PHP
by out_of_protocol on Tuesday May 05, 2020 @12:59PM
(#23082152)
Either choice doesn't really look like the sane language anymore
Re:A look at modern PHP
by mywittyname on Tuesday May 05, 2020 @03:19PM
(#23083746)
When you have dynamically typed languages, whether to coerce or not is a design decision with usability trade-offs. Javascript exhibits pretty similar behavior with switch statements for exactly the same reason: it also has two types of equality comparisons.
Also, PHP allows you to add explicit type casting to case statements. e.g.,
case (string) 1: