#19575 [Asn->Csd]: Boolean prints 1 for TRUE but nothing for FALSE
| From: | goba@php.net | Date: | Mon, 04 Nov 2002 11:04:26 +0000 |
| Subject: | #19575 [Asn->Csd]: Boolean prints 1 for TRUE but nothing for FALSE | ||
| References: | 1 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969349407@lists.php.net to get a copy of this message | ||
ID: 19575
Updated by: goba@php.net
Reported By: jc@mega-bucks.co.jp
-Status: Assigned
+Status: Closed
Bug Type: Documentation problem
Operating System: Red Hat Linux 7.2
PHP Version: 4.2.3
Assigned To: goba
New Comment:
I have just fixed this, it will show up in some days on the PHP site...
Previous Comments:
------------------------------------------------------------------------
[2002-10-07 01:58:38] goba@php.net
I'll correct this sometime later if noone picks it up. I have no time
now, sorry.
------------------------------------------------------------------------
[2002-10-06 21:25:28] jc@mega-bucks.co.jp
Goba:
I understand the need for such a feature I just don't like the
implementation. But hey, I don't like loosely typed languaged in the
first place ;)
But ... all I'm asking for is better documentation. I didn't expect
this behaviour and couldn't find any documentation to help figureout
why what I was not expecting was happening.
------------------------------------------------------------------------
[2002-10-05 10:04:48] goba@php.net
This feature(!) is there so you can convert from booleans to strings,
then back to booleans or to integers and then to booleans, and you get
the same boolean you started from...
boolean -> string -> boolean
TRUE "1" TRUE
FALSE "" FALSE
boolean -> string -> integer -> boolean
TRUE "1" 1 TRUE
FALSE "" 0 FALSE
In php code:
$false_bool = (boolean) (int) (string) FALSE;
Goba
------------------------------------------------------------------------
[2002-10-05 09:58:17] iliaa@php.net
Dupe of bug #18411
------------------------------------------------------------------------
[2002-09-24 06:56:43] jc@mega-bucks.co.jp
A boolean of TRUE will print as "1" whereas FALSE prints as ""
This has caused me a problem since I had assume that TRUE would print
as TRUE and FALSE would print as FALSE.
Could you add this to the documentation. I could understand 1/0,
TRUE/FALSE, but "1"/"" is not evident at first.
I'd even suggest a change request that booleans print out as TRUE/FALSE
(since booleans really should not be 1/0 integers or empty/non-empty
strings but BOOLEANS) but I'm sure that would ge shot down. :)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=19575&edit=1