Open bwoebi opened 8 months ago
I found these snippets:
Just using a direct check fixes: https://psalm.dev/r/fb503c39ce
Now, a new issue is emitted due to the recently merged https://github.com/vimeo/psalm/pull/10502, and both in case of the != ''
comparison and in this new issue, the answer I'm inclined to give is the same: loose comparisons are generally a bad idea, and should be avoided whenever possible.
I found these snippets:
A direct check would also compare against "0" which would not be intended here. I want just "" and null/false basically.
Obviously, writing it out would work, but it's extra verbose and also less efficient code.
You could just use !empty()
If you really need this, give a PR a try (since I doubt anybody of the existing contributors will fix this, since most people use/require strict comparisons bc the loose comparisons are a pain and huge source of bugs)
empty() sadly also compares against "0"
:-/
loose comparisons are a pain and huge source of bugs
+++, it along with empty and isset are banned in my codebase (and I'm very thankful for that)
I consider this issue as super low priority, I'd rather finish working on https://github.com/vimeo/psalm/pull/10577 first :)
A comparison
if ($key != "") { ... }
does still identify $key as beingstring|false
instead of string within the if.https://psalm.dev/r/4fb572a4fe
The goal is being able to simply compare is not empty and not false at once.
Related to #6965.