Req #53094 [Opn->Bgs]: Use '0' instead of '' as a result of converting boolean FALSE to string
| From: | rasmus@php.net | Date: | Mon, 18 Oct 2010 17:18:03 +0000 |
| Subject: | Req #53094 [Opn->Bgs]: Use '0' instead of '' as a result of converting boolean FALSE to string | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-155306@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=53094&edit=1
ID: 53094
Updated by: rasmus@php.net
Reported by: php-bugs at majkl578 dot cz
Summary: Use '0' instead of '' as a result of converting
boolean FALSE to string
-Status: Open
+Status: Bogus
Type: Feature/Change Request
Package: Scripting Engine problem
Operating System: Irrelevant
PHP Version: Irrelevant
Block user comment: N
New Comment:
This would be extremely counterintuitive to most people since every
language I
know will return a zero-length string when boolean false is converted to
a string.
Having it return a non-zero length string would cause all sorts of
backward
compatibility problems as well.
Previous Comments:
------------------------------------------------------------------------
[2010-10-18 10:30:42] php-bugs at majkl578 dot cz
Description:
------------
I'd like to propose a change in converting booleans to string.
It'd be better if (string) FALSE returns '0' instead of empty string
('').
Why to do so?
a) More logical behavior.
b) Using booleans in output would be meaningful.
c) Backward-compatible change - as documentation says: "This allows
conversion back and forth between boolean and string values." - this
behavior is not changed by this, because (bool) '0' is FALSE.
Test script:
---------------
<?php
echo (string) FALSE; //nothing now, '0' requested
var_dump((bool) '0'); //FALSE, no change
var_dump((string) FALSE === '0'); //FALSE, TRUE requested
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53094&edit=1