Objects tend to work well when you can think of them as a unit of something. They can be concrete, like a record in a database, a group of records in some sort of list or table, or more abstract, like a template.
The over-arching principle that applies in every case is that an object will do different things depending on how it was set up - as in what properties it has. This allows your scripts that interact with the objects to be written without needing any knowledge of how the object works - it can simply create the object with the correct data, and then tell the object to do something (i.e. call it's methods).
The benefit to you as the developer is that your code is easy to read, and you can separate out the logic into the classes, where it can be reused (or debugged) more easily and extensibly.
In this case, I would recommend doing things from the perspective of a 'User' class. In the script that processes your registration form, you could treat your User like so:
$user = new User();
$data = array('first_name'=>$_POST['first_name'], 'last_name'=>'$_POST['last_name'], 'email'=>$_POST['email'], 'password'=>md5($_POST['password']));
$user->data = $data; //set the 'data' property
$user->save(); //save the new user to the database
The advantage is that later on, when they log in, you can have code like:
$isLoggedIn = $user->login($_POST['email'], $_POST['password']);
if(!$isLoggedIn) { /*do something*/ }
else { /*do something*/}
After calling the 'login()' method on valid credentials, the $user object will have its 'data' property set by retrieving the relevant DB record, and so then you can access other info about the user, update that info, check permissions, create orders - all by accessing properties and methods that you create on the User class.
If you'd like to learn from a book, the best I've found is PHP: Objects, Patterns, and Practice by Matt Zandstra. It's one of the yellow Apress books, and it's now in it's Third Edition. OOP didn't really "click" for me either until I read that book.