Your object creation syntax is horrible, please do it properly just in the interest of eliminating all possibilities in error.
And having two construct echoed is not surprising.
Its possible to do
<classname>::<functionname>(); if two classes have same function.
I would highly suggest avoiding situations where functions overwrite like that.
PHP Code:
function thefunction() {
temp.var = new TStaticVar("Movement");
temp.var.join("whitedragon_system_movement");
temp.var = new Movement("NormalMovement");
temp.var.join("whitedragon_system_movement_normal");
this.movement = new NormalMovement();
this.movement.construct();
}