Doc #18411 [Com]: print_r(FALSE) not consistant with print_r(TRUE)
| From: | rasmus at mindplay dot dk | Date: | Sat, 01 Aug 2015 16:07:17 +0000 |
| Subject: | Doc #18411 [Com]: print_r(FALSE) not consistant with print_r(TRUE) | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-12570@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=18411&edit=1
ID: 18411
Comment by: rasmus at mindplay dot dk
Reported by: peter dot farr at eds dot com
Summary: print_r(FALSE) not consistant with print_r(TRUE)
Status: Not a bug
Type: Documentation Problem
Package: Documentation problem
Operating System: W2K Professional
PHP Version: 4.2.1
Block user comment: N
Private report: N
New Comment:
I don't get it, how is this expected behavior?
According to the documentation, print_r() "prints human-readable information about a
variable" - as such, I can understand why for example strings aren't quoted, meaning you
can't tell the difference between the string "1" and the numeric value 1.
But from the comments, it sounds like your concerns are about the ability to convert back and forth,
rather than producing human-readable output? That's not what print_r() is for - we have
var_export() for that.
In order to be "human-readable", the following:
print_r(array(true, false, null));
Should output:
Array
(
[0] => TRUE
[1] => FALSE
[2] => NULL
)
And not:
Array
(
[0] => 1
[1] =>
[2] =>
)
Previous Comments:
------------------------------------------------------------------------
[2002-10-31 11:48:58] iliaa@php.net
Please do not submit the same bug more than once. An existing
bug report already describes this very problem. Even if you feel
that your issue is somewhat different, the resolution is likely
to be the same. Because of this, we hope you add your comments
to the original bug instead.
Thank you for your interest in PHP.
Dupe of #19575. Even though this is an earlier report I am making it the 'bogus' one,
since the 19575 is assigned to Goba and hopefuly will be fixed soon.
------------------------------------------------------------------------
[2002-10-05 10:27:51] rasmus@php.net
TRUE has always been 1 and FALSE "". To me it would be inconsistent if you did
strlen(FALSE) and got TRUE, for example. It just needs to be documented better.
------------------------------------------------------------------------
[2002-07-18 09:39:48] goba@php.net
As the boolean page holds information on converting to boolean, I have expected this info to be
found on the strings page, but it's not there ;) Though the integer page has info on converting
to integer... So this should be explained on the strings page IMHO.
------------------------------------------------------------------------
[2002-07-18 09:27:14] derick@php.net
This is expected behavior, but I can not find this in the manual either (atleast not on http://www.php.net/manual/en/language.types.boolean.php).
Making it a documentation problem.
Derick
------------------------------------------------------------------------
[2002-07-18 09:09:10] peter dot farr at eds dot com
No doubt there is a reason for:
print_r(TRUE) displays 1
print_r(FALSE) displays nothing
But too me, it just seems inconsistant, bad practise and very confusing.
I can find nothing in the documentation I have on, why it is like this, as the text indicates 0 is
to FALSE as 1 is to TRUE.
It is also obvious from your bug list, that the area of TRUE/FALSE and 1/0 has its problems.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=18411&edit=1