PHP: Interfaces

Interfaces are contract that ensures the availability of methods/actions that an object must contain. By implementing an interface, a class agrees to contain the definitions of the methods declared in the interface. Interfaces have just the declaration/signature of the method, and the classes(that implement the interface) must have the definition of those methods.

PHP: Traits

Traits facilitate code reuse in PHP by providing a simple way to define functionality and reuse those functionalities when we need it. Traits do not comply with the “is-a” nature of inheritance, so traits do not follow the true strict inheritance. As we can use multiple traits in a class, so it compensates for the lack of multiple inheritance nature of PHP.