A PHP interface is a contract that classes can implement. It defines a set of methods that the implementing class must provide, but it does not contain any implementation itself. This allows for consistent method signatures across different classes while promoting code reusability and flexibility.
Interfaces are particularly useful in defining APIs or ensuring that certain classes adhere to a specific structure, without dictating how they should fulfill that contract.
<?php
interface Animal {
public function makeSound();
}
class Dog implements Animal {
public function makeSound() {
return 'Woof!';
}
}
class Cat implements Animal {
public function makeSound() {
return 'Meow!';
}
}
$dog = new Dog();
echo $dog->makeSound(); // Outputs: Woof!
$cat = new Cat();
echo $cat->makeSound(); // Outputs: Meow!
?>
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?