A PHP interface defines a contract which a class must fulfill. If a PHP class is a blueprint for objects, an interface is a blueprint for classes.
Interfaces allow you to specify what methods a class should implement.
Any class implementing a given interface can be expected to have the same behavior in terms of what can be called, how it can be called, and what will be returned.