There are three particular OOP-related functions that will make your life easier, and these are class_exists(), get_class(), and get_declared_classes(). In order, class_exists() returns true if the specified class has been declared, get_class() returns the class name of the object you pass to it, and get_declared_classes() returns an array of all classes that you can currently create an object of.
print"Sam is a ".get_class($sam) ."\n";
print"Class animal exists: ".class_exists("animal") ."\n\n\n\n";
print"All declared classes are: ".get_declared_classes() ."\n"; ?>
As you can see, the most common use for get_class() is when one object can be of several possible types, as in the code above. C++ users will be familiar with the concept of Runtime Type Information (RTTI), and this is pretty much the same thing.