Following are some main difference between abstract classes and interface in PHP
- In abstract classes, this is not necessary that every method should be abstract. But in interface every method is abstract.
- Multiple and multilevel both type of inheritance is possible in the interface. But single and multilevel inheritance is possible in abstract classes.
- The method of PHP interface must be public only. A method in an abstract class in PHP could be public or protected both.
- In an abstract class, you can define as well as declare methods. But in the interface, you can only define your methods.
For more information about abstract classes and Interface in PHP you can read: