How can developers leverage PHP's OOP features to create more modular and reusable code?

Developers can leverage PHP's OOP features such as classes, objects, inheritance, and interfaces to create more modular and reusable code. By organizing code into classes and objects, developers can encapsulate data and behavior, making it easier to manage and maintain. Inheritance allows developers to create new classes based on existing ones, promoting code reuse. Interfaces define a contract that classes can implement, enabling polymorphism and flexibility in code design.

// Example of using OOP features in PHP to create modular and reusable code

// Define a parent class
class Animal {
    protected $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function speak() {
        return "I am an animal.";
    }
}

// Define a child class that inherits from the parent class
class Dog extends Animal {
    public function speak() {
        return "Woof! I am a dog named " . $this->name;
    }
}

// Create an instance of the Dog class
$dog = new Dog("Buddy");

// Output the result of the speak method
echo $dog->speak();