I figured that out after I sent the email. The reason I used the 0 in the
first place was that I was having all sorts of problems with it - and it
seemed to work fine for 01 to 05 so I just continued on with it - not even
thinking about it.

Your right though, the code is awkward - but I couldn't think of any other
way of doing it.

Any suggestions?

Thanks

----- Original Message ----- 
From: "Ernest E Vogelsinger" <[EMAIL PROTECTED]>
To: "Beauford" <[EMAIL PROTECTED]>
Cc: "PHP General" <[EMAIL PROTECTED]>
Sent: Friday, May 30, 2003 7:39 PM
Subject: Re: [PHP] What's wrong with this code??


> At 01:08 30.04.2003, Beauford said:
> --------------------[snip]--------------------
> >if ($mo == 06 and $dy > 01 and $dy < 09) { $wd = "8"; }
> >if ($mo == 06 and $dy > 08) { $wd = "9"; }
> --------------------[snip]-------------------- 
>
> The problem is your notation. If you had written
>
>     if ($mo == 6 and $dy > 1 and $dy < 9) { $wd = "8"; }
>     if ($mo == 6 and $dy > 8) { $wd = "9"; }
>
> your logic would still look a bit clumsy but work as you intend.
>
> Why? Prefixing a number with a zero makes the intepreter believe you're
> using octal numbers. Oczal numbers range from 00 to 07, the decimal number
> 8 would be 010 in octal notation. Your code, translated in decimal for
> better understanding, is seen by the compiler as
>
>     if ($mo == 6 and $dy > 1 and $dy < 2) { $wd = "8"; }
>     if ($mo == 6 and $dy > 0) { $wd = "9"; }
>
> (08 => decimal 0, 09 => decimal 1). In this case your last statement will
> trigger for _any_ day in June.
>
>
> -- 
>    >O     Ernest E. Vogelsinger
>    (\)    ICQ #13394035
>     ^     http://www.vogelsinger.at/
>
>
>
> -- 
> 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

Reply via email to