Req #81456 [Com]: chr(48) is falsy
Edit report at https://bugs.php.net/bug.php?id=81456&edit=1
ID: 81456
Comment by: gib-o-master at mail dot ru
Reported by: gib-o-master at mail dot ru
Summary: chr(48) is falsy
Status: Not a bug
Type: Feature/Change Request
Package: *General Issues
PHP Version: 8.0.10
Block user comment: N
Private report: N
New Comment:
a at b dot c dot de,
im not sure you'll read this :]
1) look at my name, it states "master", so im not a newbie. a b c.
2) argument about '0' was always special, oke, i understand, let it stay special in older
versions of language. the reason of complain is about dragging this little inconsistency into
future, again [0] is not checked, '0' is checked, means different behavior/logic, array vs
string, which are similar constructs, you can access $string[1] and you can access $array[1].
3) manual. ye, manuals may contain anything. let's make chr(0) special and drag it into manual,
it's not JS and Python, right.
Previous Comments:
------------------------------------------------------------------------
[2021-09-19 01:49:34] a at b dot c dot de
chr(48) evaluates to the string "0". This is defined and documented as falsy and always
has been; you're complaining about "giving" it "special powers" when what
you're actually asking for is taking away properties that it has always had. It is something
that PHP newbies are frequently surprised by and frequently complain about, but really turns out not
to be a big deal if you pay attention to what you're doing.
This is also not JavaScript nor Python. Apologies if this means that programming in three languages
means more mental work for you than programming in two.
------------------------------------------------------------------------
[2021-09-18 06:19:28] gib-o-master at mail dot ru
i doubt that '0' or chr(48) should be given special powers, it's not intuitive for
JS/Python folks that rely on common behavior.
if ($string) {# '0' will not pass here
}
$x = $string ?: 'default';# '0' will not be selected as $x
if ([0]) {# will not look into array but string will
}
------------------------------------------------------------------------
[2021-09-18 06:03:18] requinix@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
------------------------------------------------------------------------
[2021-09-18 05:26:58] gib-o-master at mail dot ru
Description:
------------
previous was marked as spam. this is a language problem, not spam.
Test script:
---------------
if (chr(48)) {
echo 'never happen';
}
if (chr(0)) {
echo 'always happen';
}
Expected result:
----------------
never happen
always happen
Actual result:
--------------
always happen
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=81456&edit=1
Thread (9 messages)