Viralscripts
                                 Viral Scripts
Empowering Your Mind, One Script at a Time.

Blog Full Detail

How to inherit two classes in PHP?

PHP does not allow multiple inheritance, but there are two ways to achieve the same effect:

1. Using interfaces

Interfaces are a way to define a set of methods that a class must implement. A class can implement multiple interfaces, and this allows it to inherit the functionality of those interfaces.

For example, the following code shows two interfaces, Flyable and Barkable:

PHP

interface Flyable {
    public function fly();
}

interface Barkable {
    public function bark();
}

Use code with caution.andnbsp;Learn more

content_copy

A class can then implement these interfaces to inherit their functionality. For example, the following code shows a Dog class that implements both the Flyable and Barkable interfaces:

PHP

class Dog implements Flyable, Barkable {
    public function fly() {
        echo andquot;The dog flies!andquot;;
    }

    public function bark() {
        echo andquot;Woof!andquot;;
    }
}

Use code with caution.andnbsp;Learn more

content_copy

Now, a Dog object can call both the fly() and bark() methods.

2. Using traits

Traits are a way to reuse code across multiple classes. A trait can contain methods, properties, and constants, and it can be used by any class that imports it.

For example, the following code shows a Flyable trait:

PHP

trait Flyable {
    public function fly() {
        echo andquot;The {this} flies!andquot;;
    }
}

Use code with caution.andnbsp;Learn more

content_copy

Any class can then import the Flyable trait to inherit its functionality. For example, the following code shows a Dog class that imports the Flyable trait:

PHP

class Dog {
    use Flyable;

    public function bark() {
        echo andquot;Woof!andquot;;
    }
}

andnbsp;

content_copy

Now, a Dog object can call the fly() method, even though the Dog class does not implement the Flyable interface.

Which method you use to inherit two classes depends on your specific needs. If you need the class to be able to use the functionality of the interfaces that it implements, then you should use interfaces. If you need to reuse the code across multiple classes, then you should use traits.