OOP concepts in PHP 5 in brief

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

--

--

Justetc Social Services (non-profit)

All proceeds from Medium will go to Justetc Social Services ( non-profit). Justetc Social Services provides services in the Training and Education Areas.