Your first example implies there is no contract with the end user of this class (imagine you work in a team, and you are only there for 3 months).
This means anyone can purposely, or accidentally do this:
$a = new Movie(23);
$a->movie_name = "Any old crap";
They could even accidentally do this by extending this class in ways you had not originally imagined.
Your second example makes it clear that nobody can set movie_name, and the only way to get movie_name is to call the appropriate method.
What is more, if you or they extend that class then they also cannot gain access to those members without using your carefully crafted methods.
So, amongst all the other reasons why you would use getters and setters you are also signalling your intent to others, and in doing so you are to some degree (some would say to a great degree) you are documenting what you have done.
Hope this puts get/set into some context, but be aware that they should be used wisely are getters and setters evil?