> -----Original Message----- > From: farnion@xxxxxxxxxxxxxx [mailto:farnion@xxxxxxxxxxxxxx] On Behalf > Of Edmund Hertle > Sent: Monday, February 02, 2009 7:03 AM > To: Gavin Hodge > Cc: php-general@xxxxxxxxxxxxx > Subject: Re: Boolean Assignment Operator > > 2009/2/2 Gavin Hodge <gavin.hodge@xxxxxxxxx> > > > Hi, > > > > I'm fairly new to PHP, having migrated from the Java / C# world. > > > > I wrote some code similar to the following: > > > > $success = true; > > $success &= operation1(); > > $success &= operation2(); > > > > if ($success === true) { > > operation3(); // depends on 1 and 2 being successful > > } > > > > This didn't work as expected. After a bit of digging I found: > > * The &= operation isn't mentioned anywhere in the PHP documentation > > * The &= function seems to work as expected, however the following is > > observed... > > $success = true; > > $success &= true; > > print $success == true; // outputs 1 > > print $sucesss === true; // no output > > * The 'or' assignment operator |= causes no errors but doesn't work. > > > > Can any PHP gurus explain why the &= operator works at all, and why > > === seems to fail afterwards? > > > > Cheers, > > Gavin. > > > Hey, > > never heard of the "|=" operator. So I think php does not support it. > I cannot say how "&=" works in Java or C# but as of php it works like > that > (IMO) (reference instead of copy): > $var1 = "test1"; > $var2 = $var1; > $var3 &= $var1; > $var1 = "test2"; > > echo $var1; // "test2" > echo $var2; // "test1" > echo $var3; // "test2" Actually, if you run your test, $var3 does NOT come out as "test2", it will return a "0" for that echo statement. To get the results you want, it needs to be: $var3 =& $var1; -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php