Well the echo htmlspecialchars($variable); revealed that the ampersand was actually being stored properly in the variable in the original code, but when the variable was being printed (using print) to the screen for debuging/testing, it was not displaying correctly, which lead me to believe that somethin was wrong.
Thanks for the help.