In this article, we will be focusing on object oriented programming. At the end of the series, we will be creating a complete banking application to demonstrate the concepts that we have learned here.
What is object oriented programming?
It is essentially a different way of constructing your applications. Instead of having loose procedures and functions that are meant to serve one purpose, Object Oriented Programming enables you to put data and functions in one container. This container is referred to as an object. An object enables you to model your application as closely as possible to the real world. For example, when a house is being built each worker concerns himself with his or her own work, i.e., a plumber will only concern himself with plumbing while the electrician will concern himself with the electrical systems. The plumber does not need to know where the electric wires will go in a bedroom. Neither does the electrician have to know where the water pipes are located. The person with overall responsibility for the construction of the house only has to concern himself with the time it takes to complete the house and not with the particulars of a task. Object Orientation works in a similar fashion; an object hides its implementations from others, because its functions are often irrelevant to the functions of others. One of the advantages of coding with OOP is that it enables you to model real world objects to your applications.
For example, we know that a bank account has the following attributes:
An object is a fancy variable that contains methods and attributes and data that work together on that data. Objects are usually grouped into classes. A class contains objects that all have the same operations or methods behaving in the same way and attributes or properties representing the same things. A PC can be thought of as a class of objects with many common attributes such as a screen, a keyboard or mouse and methods or operations such as displaying text on screen. To create an object you need a class. A class is the framework for an object that defines the functionality and variables contained within. So how do we create a class? Take a look at the code below:
It is that simple, all you need to do is to use a keyword called Âclass' and than provide a name. It is almost as easy as defining a function. To use this class in your PHP script you do like this:
That's basically how easy it is to create and use a class. It's not really that exciting is it? To make it more useful we need to add what is called a method. A method is just a function that is defined inside the class:
A method actually does something; this is why it makes a class useful. Below is a method that generates a seven digit account number, defined for our Account class:
To use this method in our PHP script, we do like this:
So what does the code do? First, we include the class.account.php script that contains the class that we require:
Then we instantiate the account class. We effectively make a Âcopy' of the class and its methods, properties or attributes and store them in the $myclass object:
$myclass = new Account;
Now we use this object to access the newly created method:
Notice that to access the methods of an object, we need to use the -> operator. We can also add properties to our class. A property, also called an attribute, is declared as you would a variable. If you want to store a value, you assign that value to a variable in procedural PHP. In OOP, if you want to store the value of a property, you also use a variable. The variable itself is declared at the very top of the class. The name of the variable equals the name of the property. For example, if the variable is called custname then the property of the class is also called custname. Below is an example of our Accounts class with a property called custname:
To use this property in a PHP script we do like this:
When you run this script, you get:
Hi Dantago !Noabes
The basic purpose of the code is to show how to access and assign values to a class property from a normal PHP script. Notice again that to access the class property, we use the -> operator. Here we assigned the name David Web to the custname property of the class:
When we added the class property, we used the public keyword:
This keyword lets the class know that you want to be able to access the property from outside the class. Some member variables of the class should not actually be accessible from outside the class, but should rather be accessible to the class itself. For this sample code, I wanted to show how to access a class property from outside the class. But in most cases, a user won't know what variables are declared as class property, so it won't be possible for them to access, let alone use these variables.
The $this-> operator:
is used so that the object can get information about itself. This is because you might have multiple instances of a class, and you won't know in advance which object variable you will be using; the $this-> operator enables each object to talk to itself without having to know the name of the object variable currently referencing it.
A closer look at methods
There are three levels of visibility that a method or member variable can have. You have already dealt with the public key word and have learned its purpose. So let's take a look at the remaining two:
- Protected Â Protected members are available to the class itself and to those that inherit from it. We will be looking at inheritance later on.
- Private - Private members are only accessible to the class itself. These are typically items used for internal housekeeping.
The default visibility level for any member is public unless explicitly stated otherwise. This means that you do not need to add the public keyword to any member variable that you declare. However, it is recommended that you always explicitly state it at all times.
When working with classes, there is a special method called a constructor that usually has the same name as the class itself. The main purpose of this function is to be automatically called when the class is instantiated. It is therefore the perfect place for initialization tasks such as setting values for properties and creating other objects needed by this object. It is declared in the same way as the other methods, but for its name, which is required to be the same as the class name.
The next section of this article will focus on the more advanced topics of OOP. We will also start to build our own class that we want to use in our banking application.