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"