Object Oriented PHP for Beginners: Steps 1 – 7
Step 1:
Directly accessing properties – don’t do it!
You don’t have to use methods to access objects properties; you can directly get to them using the arrow operator (->) and the name of the variable.
For example: with the property $name (in object $stefan) you could get its value like so:
Though doable, it is considered bad practice to do it because it can lead to trouble down the road. You should use getter methods instead – more on that later.
Step 2:
Constructors
All objects can have a special built-in method called a ‘constructor’. Constructors allow you to initialise your object’s properties (translation: give your properties values,) when you instantiate (create) an object.
Note: If you create a __construct() function (it is your choice,) PHP will automatically call the __construct() method/function when you create an object from your class.
The ‘construct’ method starts with two underscores (__) and the word ‘construct’.
For the rest of this tutorial, I’m going to stop reminding you that:
- Functions = methods
- Variables = properties
Since this is an OO PHP tutorial, I will now use the OO terminology.
Step 3:
Create an object with a constructor
Now that we’ve created a constructor method, we can provide a value for the $name property when we create our person objects.
You ‘feed’ the constructor method by providing a list of arguments (like you do with a function) after the class name.
For example:
This saves us from having to call the set_name() method reducing the amount of code. Constructors are common and are used often in PHP, Java etc.
This is just a tiny example of how the mechanisms built into OO PHP can save you time and reduce the amount of code you need to write. Less code means fewer bugs.
Step 4:
Restricting access to properties using ‘access modifiers’
One of the fundamental principles in OOP is ‘encapsulation’. The idea is that you create cleaner better code, if you restrict access to the data structures (properties) in your objects.
You restrict access to class properties using something called ‘access modifiers’. There are 3 access modifiers:
- public
- private
- protected
‘Public’ is the default modifier.
Note: When you declare a property with the ‘var’ keyword, it is considered ‘public’.
Step 5:
Restricting access to properties: part 2
When you declare a property as ‘private’, only the same class can access the property.
When a property is declared ‘protected’, only the same class and classes derived from that class can access the property – this has to do with inheritance …more on that later.
Properties declared as ‘public’ have no access restrictions, meaning anyone can access them.
To help you understand this (probably) foggy aspect of OOP, try out the following code and watch how PHP reacts. Tip: read the comments in the code for more information:
Note: If you try to access a private property/variable outside of the class, you will get this:
'Fatal error: Cannot access private property person::$pinn_number in ...'
Step 6:
Restricting access to methods
Like properties, you can control access to methods using one of the three
access modifiers:
access modifiers:
- public
- protected
- private
Why do we have access modifiers?
In a nutshell: it comes down to control -it is makes sense to control how people use classes.
The reasons for access modifiers and other OO constructs, can be tricky to understand … especially since we are just beginners here. So give yourself a chance!
That said, we can (summarize and) say that many OOP constructs exist with idea the many programmers may be working together on a project.
Notes: Since the method get_pinn_number() is ‘private’, the only place you can use this method is in the same class – typically in another method. If you wanted to call/use this method directly in your PHP pages, you would need to declare it ‘public’.
Nerd Note: Again, it is important (as we go along,) that you actually try the code yourself. It makes a HUGE difference!
0 comments:
Post a Comment
Thanks