Re:PHP 8.1.0
by stefanos82 on Thursday November 25, 2021 @06:21PM
(#29345964)
...so it basically is `0 == ![]`, in other words, `[].length` which is `0`, thus becomes `0 == false` which returns `true` with loose comparison?
Re:PHP 8.1.0
by 0x4d464d48 on Thursday November 25, 2021 @07:05PM
(#29346256)
Yep.
Because an array is an object which has a 'truthy' value '![]' evaluates as 'false'.
Simplifies to a statement similar to 'false == false'.
A little useless arcana for those interested.
Well, not so useless if your expecting '!someEmptyArray' to evaluate to 'true'. Use '!someEmptyArray.length' instead.
I use it constantly not because it's well-designed but because TINA (there is no alternative).
[] == ![]; // true. Go ahead. Run it in your console...