Doc #18411 [Com]: print_r(FALSE) not consistant with print_r(TRUE)

From: 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

« previous php.doc.bugs (#12570) next »