News for hackers. Stuff that matters.
Re:A look at modern PHP by sadfklsjlkjwt on Tuesday May 05, 2020 @06:34AM (#23078476)
Why are you using "=="? Use "===" and make explicit casts as required.
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
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:
Re:A look at modern PHP by aganame on Tuesday May 05, 2020 @11:21AM (#23080951)
And what is the equivalent of "===" for ">" and "<"?