RE: [PHP] Re: Strange comparison behaviour

2005-05-21 Thread Martin Zvarik
String info is converted to integer, which is 0...

a)
if(info == 0)

b)
if(info === 0)

c)
if(info == (string)0)


Or use strcmp()

Cya...
Read a book PHP for beginners



-Original Message-
From: Bogdan Stancescu [mailto:[EMAIL PROTECTED] 
Sent: Friday, May 13, 2005 5:13 AM
To: php-general@lists.php.net
Subject: [PHP] Re: Strange comparison behaviour

You probably mis-typed something:

[EMAIL PROTECTED] ~]$ php
?
if (info == 0) echo is 0\n; else echo not 0\n;
?
Content-type: text/html
X-Powered-By: PHP/4.3.11

is 0

Cheers,
Bogdan

Erwin Kerk wrote:
 Hi All,
 
 Can anyone explain me why the following code:
 
 if (info == 0) echo is 0\n; else echo not 0\n;
 
 Results in: not 0
 
 
 Whereas:
 
 if (inf == 0) echo is 0\n; else echo not 0\n;
 
 Results in: is 0
 
 
 
 Notice the difference: info in the first sample, inf in the second sample.
 
 
 The used PHP version is PHP 4.1.2 (CLI version)
 
 
 Erwin Kerk

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Re: Strange comparison behaviour

2005-05-13 Thread Erwin Kerk
Bogdan Stancescu wrote:
You probably mis-typed something:
[EMAIL PROTECTED] ~]$ php
?
if (info == 0) echo is 0\n; else echo not 0\n;
?
Content-type: text/html
X-Powered-By: PHP/4.3.11
is 0
Tried that, but notice the PHP Version, it is failing in PHP 4.1.2!
Erwin Kerk
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP] Re: Strange comparison behaviour

2005-05-13 Thread Drewcore
is upgrading your php out of the question? i would go with at least
4.3.x if not 5... unless you don't have root access on your server...
in which case, i have no advice...


On 5/13/05, Erwin Kerk [EMAIL PROTECTED] wrote:
 Bogdan Stancescu wrote:
  You probably mis-typed something:
 
  [EMAIL PROTECTED] ~]$ php
  ?
  if (info == 0) echo is 0\n; else echo not 0\n;
  ?
  Content-type: text/html
  X-Powered-By: PHP/4.3.11
 
  is 0
 Tried that, but notice the PHP Version, it is failing in PHP 4.1.2!
 
 Erwin Kerk
 
 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 
 


-- 
dc .. drewcore.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Re: Strange comparison behaviour

2005-05-13 Thread Brian V Bonini
On Fri, 2005-05-13 at 06:34, Erwin Kerk wrote:
 Bogdan Stancescu wrote:
  You probably mis-typed something:
  
  [EMAIL PROTECTED] ~]$ php
  ?
  if (info == 0) echo is 0\n; else echo not 0\n;
  ?
  Content-type: text/html
  X-Powered-By: PHP/4.3.11
  
  is 0
 Tried that, but notice the PHP Version, it is failing in PHP 4.1.2!
 
 Erwin Kerk

Same behavior on 5.x - I suspect something to do with the 'type' and
loose comparison operators. According to table 2:
http://us4.php.net/manual/en/types.comparisons.php is should evaluate as
true. Looking at the ordinal values revealed nothing to me...


?php

$string = info;
$len = strlen($string);
$lst = $string{strlen($string - 1)};
 
echo 'pre';
echo ($string == 0) ? is 0\n : not 0\n;
echo (rtrim($string, $lst) == 0) ? is 0\n : not 0\n;
echo ---\n;

for($i=0; $i$len; $i++) {
$ord_value =  ord($string[$i]);
echo chr($ord_value) . = . $ord_value . \n;
}

echo '/pre';

?

Anyway, I suspect using ($string === 0) will give you the expected
results.


-- 

s/:-[(/]/:-)/g


BrianGnuPG - KeyID: 0x04A4F0DC | Key Server: pgp.mit.edu
==
gpg --keyserver pgp.mit.edu --recv-keys 04A4F0DC
Key Info: http://gfx-design.com/keys
Linux Registered User #339825 at http://counter.li.org

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php