Edit report at http://bugs.php.net/bug.php?id=52919&edit=1

 ID:                 52919
 Updated by:         [email protected]
 Reported by:        ghazanfar dot ahmed at magsnet dot net
 Summary:            if does not work properly of strlen even if
                     typecasted
-Status:             Open
+Status:             Bogus
 Type:               Bug
 Package:            Scripting Engine problem
 Operating System:   Centos 5.5
 PHP Version:        Irrelevant
 Block user comment: N

 New Comment:

Works for me; as Felipe says, there doesn't seem to be a way to
reproduce this. The sample code prints "CHECK ELSE" on every install I
have to hand, which is exactly what I'd expect, given strlen("700") is
fairly obviously 3.



I'd suggest double checking that all your values in your actual code are
actually what you think they are and following up with a user support
channel such as an appropriate mailing list, IRC, or Stack Overflow.


Previous Comments:
------------------------------------------------------------------------
[2010-09-24 04:01:02] [email protected]

Sorry, I didn't read the comment. Re-opened.

------------------------------------------------------------------------
[2010-09-24 03:36:23] [email protected]

Expected behavior. 3 > 7 is false, hence the else block will be
executed...

------------------------------------------------------------------------
[2010-09-23 23:54:27] [email protected]

This makes no sense... No way to reproduce such thing.

------------------------------------------------------------------------
[2010-09-23 22:50:34] ghazanfar dot ahmed at magsnet dot net

Sorry, it prints "CHECK IF" where it should print "CHECK ELSE"

------------------------------------------------------------------------
[2010-09-23 22:46:23] ghazanfar dot ahmed at magsnet dot net

Description:
------------
IF does not produce correct result when strlen is used to calculate
length of a 

string which is an integer

Test script:
---------------
//IF does not seem to evaluate properly



$row['number'] = 700; //in my case if was value retrieved from mysql



// force typecasting

$number = (string)$row['number'];



if(strlen(trim($number)) > 7) {

  print "CHECK IF"; }

else {

  print "CHECK ELSE";

}



//It will always print "CHECK ELSE" where strlen($number)=3 (computes
correctly)

// where 3 > 7 is false











------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=52919&edit=1

Reply via email to