On 4/19/05, Sara Golemon <[EMAIL PROTECTED]> wrote:
> > <?php echo '0' == '0.0000e0' ?>
> > 1
> >
> > <?php echo '0' == 'asadoaskd' ?>
> > (nothing, false)
> >
> > <?php echo '0' == (int)'adasd' ?>
> > 1
> >
> > That confuses me more (but understandable, and thank God PHP behave
> > this way)... I thought 'asdasd' is 0 when [implicitly] converted to
> > int [for comparison]? I guess I never knew PHP well :-(
> >
> That would be the 'Roughly Speaking' and 'not precisely how the engine
> handles it internally' parts.
> 
> In the case of string to string comparison there must be at least one digit
> involved at the start of the string  (or a plus/minus sign followed by
> digits, etc...) in order to qualify as a numeric string.
I don't see this is the case:

<?php echo '0' == '0asodkaowueoq' ?>
(false)

<?php echo '0' == '0 asdkasod' ?>
(false)

Isn't '0asdkoasdk' a numeric string?

However:

<?php echo 0 == 'asodkasodk' ?>
1

(this is expected, although for the $password case, it can lead to
security holes).
More niceties:

<?php echo null == 0 ?>
1

<?php echo null == '' ?>
1

<?php echo null == '0' ?>
(false)

Programming in PHP can be a lot of fun! ;-)

-- 
Hendy Irawan
http://www.gauldong.net
http://dev.gauldong.net

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to