What is duck typing

Duck typing is a concept in programming, particularly in dynamically typed languages like Python and Ruby, that determines an object's suitability for use in a particular context by the methods and properties the object possesses rather than the object's actual type. The famous saying, "If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck" encapsulates the essence of duck typing.

<?php class Duck { public function quack() { return "Quack!"; } } class Dog { public function bark() { return "Woof!"; } } function makeSound($animal) { if (method_exists($animal, 'quack')) { return $animal->quack(); } else { return "This animal cannot quack."; } } $duck = new Duck(); echo makeSound($duck); // Outputs: "Quack!" $dog = new Dog(); echo makeSound($dog); // Outputs: "This animal cannot quack." ?>

duck typing dynamic typing programming PHP object-oriented programming