One other use of interfaces I forgot to mention is that your program can check to see if an object implements a particular interface in the same way that it can ask that object what class it is (or is descended from).
If an object implements the FooBar interface, then your code can check that it does by using ($object instanceof FooBar). The result will be true or false.
The same check can be made at runtime when the function is called:
function your_function(FooBar $object)
{
....
}
and if $object doesn't implement the FooBar interface, then when your_function() is called, PHP will whinge.