#25243 [WFx]: casting to int behavior weird
| From: | elite_eagle67 at hotmail dot com | Date: | Wed, 27 Aug 2003 22:18:34 +0000 |
| Subject: | #25243 [WFx]: casting to int behavior weird | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-46789@lists.php.net to get a copy of this message | ||
ID: 25243
User updated by: elite_eagle67 at hotmail dot com
Reported By: elite_eagle67 at hotmail dot com
Status: Wont fix
Bug Type: Feature/Change Request
Operating System: windoze
PHP Version: Irrelevant
New Comment:
Oh.
Aren't you anyway though in PHP 5 with all the object stuff? The way
you must first declare objects (I think) before you can use them. I
think casting in this fashion is used even less then objects in those
situations, or even any way that objects will brake old scripts.
Also it says right in the link posted that you should not rely on the
casting to other types behavior and it can change without notice. So
what's the point of that statement if in reality the PHP managment is
doing everything they can to keep it the same?
Well anyway don't mean to seem rude or anything but I think it would be
cool if casting worked as was most logical. I used to like to use it
(and I think others might to) because it was a quick way to check
variable validity for a certain purpose. is_numeric() is slower then
casting. But I cant use it now cause it doesn't work.
Have a nice day ;)
Previous Comments:
------------------------------------------------------------------------
[2003-08-27 05:41:50] derick@php.net
We will not break other people's scripts.
------------------------------------------------------------------------
[2003-08-26 17:43:21] elite_eagle67 at hotmail dot com
Ok then I move this to a feature request. Im asking then that if the
behavior of array to int, object to int, etc is predictable and in the
manner I described
IE any non integer value will be converted to 0 when casted to int as
you think it would be.
Thanks.
------------------------------------------------------------------------
[2003-08-25 23:27:20] sniper@php.net
RTFM:
http://www.php.net/manual/en/language.types.integer.php#language.types.integer.casting
------------------------------------------------------------------------
[2003-08-25 23:21:18] elite_eagle67 at hotmail dot com
Description:
------------
Do (int)$var where $var is an array that has some kind of value stored,
and the return value will be 1, not 0.
Now this obviously doesn't make sense as you cast to (int) so you can
see if a variable has a valid INTEGER variable, NOT if it is the
integer equivilent of a * boolean * value.
Ofcourse, an empty array in this example will return 0, as would be
expected behavior for a BOOLEAN cast, not integer howerever...
I'm unaware how (string) cast deals with this, possibly similiar but if
so, then just apply this bug report to that ;)
Reproduce code:
---------------
$array = array( 'yay' => 'boo!' );
if((int)$array) {
echo (int)$array;
} else {
echo (int)$array;
}
Expected result:
----------------
0
Actual result:
--------------
1
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=25243&edit=1