OOP concepts in PHP 5 in brief
4 min readSep 23, 2019
OOP concepts in PHP 5 in brief
OOP concepts in PHP 5 in short
Why this short — note? if you are familiar with OOD and any OOP language such as Java/C++, this short note will give you enough information to start with PHP 5 OOP Class
- Class definition starts with the keyword class, followed by a class name (non reserved word), followed by a pair of curly braces. The curly braces contain the definition of the classes members and methods
- You can create objects based on the classes. $obj = new className()
- You use $obj->methodName() to access a class method (public). You can use className::classMember to access class members (static): to use :: operator the method does not need to be declared static
- Inside a class all class methods have access to $this variable to refer to the calling object (if called from/using an object)
- member declaration: public $var = ‘a default value
- Default value always is: constant expression
- Class/Object Functions
- A class can use extends keyword to inherit methods and members of another class
- Multiple inheritance is not allowed
- To avoid using a long list of includes in the beginning of php files, you can use __autoload() function to do the job for you
- When you try to use an undefined class/interface an __autoload function is automatically called
- function __autoload($class_name) {
require_once $class_name . ‘.php’;
} - Constructor syntax: void __construct ([ mixed $args [, $… ]] )
- Parents’ constructors are not automatically called from children’s constructor. use explicit parent::__construct() instead
- Destructor syntax: void __destruct ( void )
- Destructor is called: 1. all references to the object are removed 2. the object is explicitly destroyed 3. in shutdown sequence
- Parents’ destructors are not automatically called from children’s destructors. use explicit parent::__destruct() instead
- Access modifiers for class members: public, protected or private: Public — accessible from anywhere. Protected — accessible from inherited and parent classes, within the class. Private — accessible within the class
- No access modifier = public
- :: — scope resolution operator — allows access to static, constant, and overridden members or methods of a class
- Abstract classes: Introduced in PHP 5. You are not allowed to reate an instance of an abstract class.
- Even if a class contains one abstract method, the class must bedeclared abstract
- Abstract classes are just about signatures, they cannot define the implementation
- A class inheriting from an abstract class, must have to implement all abstract methods. The abstract methods must be defined with the same/(less restricted) visibility
- Interface: Just the method signatures. No method implementation inside interfaces
- All interface methods must be public
- Classes implementing interfaces must implement all methods. Classes use implements keyword to implement an interface
- A class can not implement two interfaces having same class names
- Interfaces can be extended using extends keyword
- Interfaces can also have constants
- Overloading: Overloading in PHP = dynamically “create” members and methods
- overloading methods: invoked when interacting with non-declared/invisible members or methods
- All overloading methods must be defined as public
- In PHP, overloading is done through magic methods
- The arguments of the magic methods can not be ‘passed by reference’
- Member overloading methods: void __set ( string $name , mixed $value ), mixed __get ( string $name ), bool __isset ( string $name ), void __unset ( string $name )
- Method overloading: mixed __call ( string $name , array $arguments ), mixed __callStatic ( string $name , array $arguments )
- Object Iteration: Inside the class
- foreach($this as $key => $value) {
print “$key => $valuen”;
} - Object Iteration: Outside class:
- $class = new MyClass();
foreach ($class as $key => $value) {
print “$key => $valuen”;
} - Patterns: Factory Pattern: allows the instantiation of objects at runtime
- Patterns: Singleton: Helps in situations where only a single instance of a class is required that will be used by many other objects
- Magic methods: have special meaning. __construct, __destruct (see Constructors and Destructors), __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __set_state and __clone
- serialize() — applies to __sleep(). unserialize() applies to __wakeup()
- final keyword: final members can not be overriden, final classes can not be extended
- $copy_of_object = clone $object; : will create a clone of $object. Unless a __clone method defined, a shadow is created. __clone() method can define how the cloning will be done
- Objects Comparison: == : two object instances are equal if they have the same attributes and values, and are instances of the same class.
- Objects Comparison: === : Object variables are identical if and only if they refer to the same instance of the same class
- Reflection APIs: to reverse-engineer classes, interfaces, functions and methods, extensions
- Reflection APIs: Offer ways to retrieve doc comments for functions, classes and methods
- Type Hinting: Functions can enforce parameters to be objects:
- Late Static Bindings: to refer the called class in a context of static inheritance.
- — — -
Blog: http://bangla.saLearningSchool.com http://SitesTree.com,Hottest Deals on Amazon USA: http://tiny.cc/38lddzHottest Deals on Amazon CA: http://tiny.cc/bgnddzHottest Deals on Amazon Europe: http://tiny.cc/w4nddzOnline and Offline Training: http://training.SitesTree.comWorkshops:
http://sitestree.com/training/course/index.php?categoryid=16