To your query,
I don't really understand how "Echo e2 = e1;" works. Can someone clarify that? I'm assuming object reference e2 takes on the same values as e1?
Yes. once you say e2=e1, the object referred by the reference variable e1 is assigned to the reference variable e2 as well.
After the execution of this statement, both the reference variables e1 and e2 will be pointing to the same object thereby resulting a reflection on the same object irrespective of the reference variable through which you proceed.
HtH.