Re: 2 errors I can not understand

From: Date: Wed, 14 Mar 2007 12:48:41 +0000
Subject: Re: 2 errors I can not understand
References: 1 2 3 4 5 6 7 8  Groups: php.general 
Request: Send a blank email to php-general+get-250555@lists.php.net to get a copy of this message
On Wed, 2007-03-14 at 07:42 -0500, Myron Turner wrote: > Robert Cummings wrote: > > 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. > > > This illustrates what in fact happens. But I still don't understand > why, since, given the precedence of these operators, the = should be > applied after the modulus. The expression should resolve to ($x % $y) = > 5 and not to $x % ($y=5). Or shouldn't it? You must have missed the post where I said it looks like a bug :) 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. | `------------------------------------------------------------'

« previous php.general (#250555) next »