335
submitted 1 year ago* (last edited 1 year ago) by AlmightySnoo@lemmy.world to c/programmerhumor@lemmy.ml
you are viewing a single comment's thread
view the rest of the comments
[-] bastian_5@sh.itjust.works 3 points 1 year ago

I say that php breaks math entirely, and is therefore bad. "" == null returns true null == [] returns true "" == [] returns false.

In more recent versions it gets worse, because it has 0 == "any text" return true, "any text" == true return true, and 1 == true return true So indirectly 1 = 0, and now math is more directly broken.

[-] thatwill@lemmy.world 13 points 1 year ago

If you're trying to directly compare different variable types in any language without strong typing, you're going to have edge-case results which you might not expect.

My "coding like a moron" message still stands. PHP isn't a strongly typed language and it doesn't tell you off for trying stupid stuff like comparing a string with an int. Nor do other languages like JavaScript.

[-] kimpilled@infosec.pub 4 points 1 year ago

Also using duck typing fails against php is pretty funny when it’s being compared against JAVASCRIPT of all things.

[-] thatwill@lemmy.world 2 points 1 year ago

I just tested these out out of curiosity.
0=="text" returns false in PHP 8.2 as I'd expect.

The others make sense in the way that php juggles between types. An empty variable can type-juggle to null, but an array can't be directly compared with a string.

(Although you wouldn't really want to compare an array with a string, PHP just treats an array as greater than other variables. So weirdly, ([] > "") == true.)

[-] rikudou@lemmings.world 1 points 1 year ago

Just... don't use ==? I haven't used it in a few years.

this post was submitted on 14 Jul 2023
335 points (91.0% liked)

Programmer Humor

32559 readers
565 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS