Re: When is "z" != "z" ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2006/6/4, Rasmus Lerdorf <rasmus@xxxxxxxxxxx>:

tedd wrote:
> Hi gang:
>
> Here's your opportunity to pound me again for not knowing the basics of
php.
>
> I vaguely remember something like this being discussed a while back, but
can't find the reference.
>
> In any event, if one uses --
>
> for ($i="a"; $i<"z"; $i++)
>   {
>   echo($i);
>    }
>
> -- it stops at "y"
>
> But, if you use --
>
> for ($i="a"; $i<="z"; $i++)
>   {
>   echo($i);
>    }
>
> -- it prints considerably more characters after "z" than what one would
normally expect -- why is that?
>
> Just stopping at "z" would seem to make more sense, wouldn't it? After
all, when $i = "z" in the first expression, then wouldn't $i be equal to "z"
in the second expression and thus halt the operation?
>
> What am I missing here?

It's a bit of a quirk.  "z"++ is "aa" and "aa" < "z".  I would guess
this would loop until until just before "za" which would be "yz".


What?
"z"++ < "z" returns true? =S
Is there a reason for this? Why aren't they handled like C chars?

It's a bit like looping through the hexadecimal characters.  You would
have the same effect.  However instead of being base-16 with 0-9-a-f you
have base-26 using a-z.


0xF++  would be 0x10 which is greater than 0xF (0xF < 0x10). It's not the
same.

-Rasmus

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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux