Re: 2 errors I can not understand

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

 



Robert Cummings wrote:
On Wed, 2007-03-14 at 12:57 +0100, Tijnema ! wrote:
On 3/14/07, Myron Turner <turnermm02@xxxxxxx> 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?

--

_____________________
Myron Turner
http://www.room535.org
http://www.bstatzero.org
http://www.mturner.org/XML_PullParser/

--
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