Re: 2 errors I can not understand
| From: | Robert Cummings | Date: | Wed, 14 Mar 2007 12:31:45 +0000 |
| Subject: | Re: 2 errors I can not understand | ||
| References: | 1 2 3 4 5 6 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-250552@lists.php.net to get a copy of this message | ||
On Wed, 2007-03-14 at 12:57 +0100, Tijnema ! wrote:
> On 3/14/07, Myron Turner <turnermm02@shaw.ca> wrote:
> > Richard Lynch wrote:
> > > On Tue, March 13, 2007 6:04 pm, Jonathan Kahan wrote:
> > >
> > >> This did fix the problem but I am amazed that
> > >>
> > >> $s%$d=0 would be interpereted as a statement assigning d to 0 since
> > >> there is
> > >> some other stuff in front of d... I would think that would produce an
> > >> error
> > >> at compile time since $s%$d is an illegal variable name. Normally when
> > >> my
> > >> php script errors at compile time nothing will display to the screen.
> > >>
> > >
> > > You still have not correctly puzzled out what $s % $d = 0 is doing...
> > >
> > > The = operator takes precedence, and $d is set to 0.
> > >
> > But why? According to the manual, the modulus operator has precedence
> > over the equals! So shouldn't this expression resolve to:
> > ($s % $d) = 0
> > which gives an error?
> Might it be that it generates only an error in specific error levels?
Simple proof of precedence problem:
<?php
$x = 6; $y = 4;
echo ($x%$y=5)."\n";
echo ($x%$y=4)."\n";
?>
Cheers,
Rob.
--
.------------------------------------------------------------.
| InterJinn Application Framework - http://www.interjinn.com
|
:------------------------------------------------------------:
| An application and templating framework for PHP. Boasting |
| a powerful, scalable system for accessing system services |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for |
| creating re-usable components quickly and easily. |
`------------------------------------------------------------'