PHP is a server-side scripting language, mainly used for web development but also used as a general-purpose programming language. Object-Oriented Programming (PHP OOP), is a type of programming language principle added to php5, that helps in building complex, reusable web applications.
In this blog, we will be explaining some of the Object-Oriented Programming concepts in PHP with some examples.
The PHP Object-Oriented Programming concepts are:
- Magic Methods
Class & Object:
- Class is a programmer-defined data type, which includes local methods and local variables.
- Class is a collection of objects. Object has properties and behaviour.
- First we have to define a php class, where classname should be same as filename.
Example for simple class:
In the basics of object-oriented, let see how to define a class and create an object:
Creating Objects in PHP
When class is created, we can create any number of objects in that class. The object is created with the help of the new keyword.
Calling Member Function
When the object is created we can access the variables and method function of the class with the help of operator ‘->, accessing the method is done to get the information of that method. Also, look into how we can access object properties via variables
Output for the above code
When the properties and the methods of the parent class are accessed by the child class, we call the concept has inheritance. The child class can inherit the parent method and give own method implementation, this property is called overridden method. When the same method of the parent class is inherited we call as inherited method. Now let us see types of inheritance supported in Object Oriented Programming and corresponding Php inheritance examples.
Types Of Inheritance
- Single Level Inheritance
- Multilevel Inheritance
Single Level Inheritance: In Single Level Inheritance the Parent class methods will be extended by the child class. All the methods can be inherited.
Single Level Inheritance
Example for Single Level Inheritance
Hi : Pavan
I am from valuebound
I am from ABC
MultiLevel Inheritance : In MultiLevel Inheritance, the parent class method will be inherited by child class and again subclass will inherit the child class method.
Class A is 80
Class B is 50
Class C 20
- An interface is a description of the actions that an object can do.
- Interface is written in the same way as the class the declaration with interface keyword.
Rules of Interfaces:
- All methods declared in an interface must be public; this is the nature of an interface.
- All methods in the interface must be implemented within a class; failure to do so will result in a fatal error.
- The class implementing the interface must use the exact same method signatures as are defined in the interface
- Interfaces can be extended like classes using the extends operator.
Example for the interface class
Describing Mango tree
2) Interface can be extended with another interface using extends keyword
division of 10/2 is 5
multiplication of 2*3 is 6
Note on Interfaces:-
- We cannot create objects to interface, but the class implementing the interface can have objects
- We cannot define a variable in an interface.
- If we extend interface all the methods of the interface must be implemented in the child class.
- An abstract class is a class that contains at least one abstract method. The abstract method is function declaration without anybody and it has the only name of the method and its parameters.
- There can be any number of methods in the class and we have to declare the class as abstract only when there is an abstract method
Example for Abstract class
Output for the above code is:
Notes on Abstract classes:
- Objects cannot be created for the abstract classes.
- If a class has only one method as abstract, then that class must be an abstract class.
- The child class which extends an abstract class must define all the methods of the abstract class.
- If the abstract method is defined as protected in the parent class, the function implementation must be defined as either protected or public, but not private.
- The signatures of the methods must match, optional parameter given in the child class will not be accepted and error will be shown.
- Abstract classes that declare all their methods as abstract are not interfaces with different names. One can implement multiple interfaces, but not extend multiple classes (or abstract classes).
Now Let us see the difference between abstract class and interface.
|It can have constants, members, method stubs (methods without a body), methods||It can only have constants and methods stubs.|
Methods and members can have public or protected visibility
|Methods of interface should only be public not any other visibility|
The concept of multiple inheritances not supported.
|An interface can extend or a class can implement multiple other interfaces.|
Child class must implement all the abstract method of parent class when extend keyword is used.
|No need of implementing methods from parent interface when interface is extending another interface|
In the end, now we are able to create a class, define objects for the class and create methods. We also learned about different topics of object-oriented like inheritance, interface, abstraction. The basic concepts of OOP is explained in this blog.