SlideShare a Scribd company logo
iFour ConsultancyOOP with PHP
web Engineering ||
winter 2017
wahidullah Mudaser
assignment.cs2017@gmail.com
 Lecture 09
 OOP in PHP
 Classes and objects
 Methods and properties
 Scope
 Inheritance
 Static methods and properties
 Constants
 Abstraction
 interfaces
OUTLINE
 The idea of Object Oriented Programming is to move the architecture of an
application closer to real world
 Classes are types of entities
 Objects are single units of a given class
 Example – Dog is a class, your dog Lassie is an object of class Dog
 Classes have methods and properties
 Classes and objects help to create well-structured application
Classes and objects
 Declaring of a class in PHP can be done anywhere in the code.
 Two special methods: constructor and destructor
 Executed when creating or destroying new object of this class
 Used to initialize or cleanup properties and etc.
Classes in PHP
class Dog {
… // declare methods and properties
}
Classes in PHP
 Class definition begins with the class keyword, followed by its name and
methods and properties list
 Objects of class (instances) are created with the keyword new
class A {
function foo () {
echo "foo here!";
}
}
$myFirstObject = new A();
$myFirstObject->foo(); // prints out "foo here!";
class name Method name and body
Create new object of class
A
Execute method of this
object
Constructors
 Each class can have only one constructor
 All parameters of the creating of the object are passed to the constructor
class A {
function __construct ($bar) {
echo $bar;
}
function foo () {
echo "foo here!";
}
}
$myFirstObject = new A('test');
// print 'test'
Properties
 Class can have unlimited number of properties
 The $this variable points to the current object – called execution
context
class A {
var $bar;
function __construct ($bar) {
$this->bar = $bar;
}
function myPrint () {
echo $this->bar;
}
}
$myFirstObject = new A('test');
$myFirstObject->myPrint();
More Properties
 Class can specify default value for a property
 Properties can be accessed from the outside world
class A {
var $bar = 'default value';
…
class A {
var $bar = 'default value';
…
}
$obj = new A;
echo $obj->bar;
$this
 Example of what $this is
 Can be used to access methods too
class A {
var $bar;
function __construct ($bar) {
$this->bar = $bar;
}
function myPrint () {
echo $this->bar;
}
}
$myFirstObject = new A('test');
$myFirstObject->myPrint(); // prints 'test'
$anotherObject = new A('foo');
$anotherObject ->myPrint(); // prints 'foo';
Destructors
 Each class can have only one destructor
 Must be public
 Destructors are automatically called when script is shutting down
class A {
function __construct ($name) {
$this->fp = fopen ($name, 'r');
}
function __destruct () {
fclose($this->fp);
}
}
$myFirstObject = new A('test');
Scope
 Each method and property has a scope
 It defines who can access it
 Three levels – public, protected, private
 Private can be access only by the object itself
 Protected can be accessed by descendant classes (see inheritance)
 Public can be accessed from the outside world
 Level is added before function keyword or instead of var
 var is old style (PHP 4) equivalent to public
 Constructors always need to be public
Scope Example
class A {
private $bar;
public function __construct ($bar) {
$this->bar = $bar;
}
public function myPrint () {
echo $this->bar;
}
}
$myFirstObject = new A('test');
$myFirstObject->myPrint(); // prints 'test'
// this will not work:
echo $myFirstObject->bar;
The $bar variable is private so only the
object can access it
The myPrint method is public, so
everyone can call it
Inheritance
 A class can inherit (extend) another class
 It inherits all its methods and properties
class A {
public $bar = 'test';
public function example () {
…
}
}
class B extends A {
…
}
$obj = new B();
echo $obj->bar; //prints 'test'
//calls the A-class function
$obj->example();
Protected Scope
 Method or property, declared as protected can be accessed in classes
that inherit it, but cannot be accessed from the outside world
class A {
protected $bar = 'test';
}
class B extends A {
public function foo () {
// this is allowed
$this->bar = 'I see it';
}
}
$obj = new B();
echo $obj->bar; //not allowed
Overriding
 When a class inherits another, it can declare methods that override parent class
methods
 Method names are the same
 Parameters may differ
class A {
public foo() { … }
}
class B extends A {
public foo() { … }
}
Overriding Example
class A {
public foo() {
echo 'called from A';
}
}
class B extends A {
public foo() {
echo 'called from B';
}
}
$obj1 = new A();
$obj2 = new B();
$obj1->foo(); // executes A's methods
$obj2->foo(); // executes B's methods
Accessing Parent Class
 As -> is used to access object's methods and properties, the :: (double colon) is
used to change scope
 Scope Resolution Operator
 parent:: can be used to access parent's class overridden methods
 Example: call parent's constructor in the child one
Accessing Parent Class
 Example of calling parent constructor
class A {
protected $variable;
public __construct() {
$this->variable = 'test';
}
}
class B extends A {
public __construct() {
parent::__construct();
echo $this->variable;
}
}
$obj1 = new B();
// prints 'test';
The static Keyword
 Defining method or property as 'static' makes them accessible without needing an
instantiation of a class
 Accessed with the double-colon (::) operator instead of the member (->) operator
 $this is not available in static methods
 Static properties and methods can also have scope defined – public, private or protected
The static Keyword
 Example of static method and property
 Class can access statics with the self keyword
 Outside world accesses statics with the class name
class A {
public static $myVariable;
public static function myPrint() {
echo self::$myVariable;
}
}
A::$myVariable = 'test';
A::myPrint();
Class Constants
 Constants in PHP usually are declared with the define function
 Constants can be defined in class
 Differ from normal variables – no need for $ symbol to declare and
access
 Declared with the const keyword
 Value must be supplied with the declaration
 Accessed with scope operator (::)
 Can be overridden by child classes
 Value must be constant expression, not a variable, class member, result
of operation or function call
Class Constants
 Example of a class constant
class A {
const myConstant = 'value';
public function showConstant() {
echo self::myConstant;
}
}
echo A::myConstant;
$obj = new A();
$obj->showConstant();
Abstraction
 Classes, defined as abstract, cannot have instances (cannot create object of
this class)
 Abstract class must have at least one abstract method
 Abstract methods do not have implementation (body) in the class
 Only signature
 The class must be inherited
 The child class must implement all abstract methods
 Cannot increase visibility
Abstraction Example
abstract class AbstractClass {
abstract protected function getValue();
abstract public function getValue2($prefix);
public function printOut () {
echo $this->getValue();
}
}
class Class1 extends AbstractClass {
protected function getValue (){
return "Class1";
}
public function getValue2($prefix) {
return $prefix."NAC1";
}
}
Abstraction Example (2)
// continue from previous slide
class Class2 extends AbstractClass {
protected function getValue (){
return "Class2";
}
public function getValue2($prefix) {
return $prefix."NAC2";
}
}
$class1 = new Class1();
$class1->printOut(); // "Class1";
echo $class1->getValue2('FOO'); // FOONAC1
$class2 = new Class2();
$class2->printOut(); // "Class2";
echo $class2->getValue2('FOO'); //FOONAC2
Interfaces
 Object interfaces allow you to specify what methods a child class must
implement
 Declared with the interface keyword
 Similar to abstract class
 Interface can have only public methods
 No method in interface can have implementation
 Interfaces are inherited with the implements keyword (instead of
extends)
 One class may implement multiple interfaces, if they do not have methods
with same names
Interface Example
interface iTemplate {
public function set ($name, $value);
public function getHTML($template);
}
class Template implements iTemplate {
private $vars = array();
public function set ($name, $value) {
$this->vars[$name] = $value;
}
public function getHTML($template) {
foreach($this->vars as $name=>$value) {
$template = str_replace(
'{'.$name.'}', $value, $template);
}
return $template;
}
}
Questions?
http://www.ifourtechnolab.com/ ASP.NET Software Development Companies India

More Related Content

PPTX
OOPS Basics With Example
PPT
Php object orientation and classes
PDF
Python unit 3 m.sc cs
PDF
PHP OOP
PPT
Advanced php
PPTX
OOP with Java - continued
PDF
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
OOPS Basics With Example
Php object orientation and classes
Python unit 3 m.sc cs
PHP OOP
Advanced php
OOP with Java - continued
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA

What's hot (20)

PDF
Python programming : Classes objects
PDF
C# Summer course - Lecture 4
PPTX
Advance OOP concepts in Python
PDF
Python programming : Inheritance and polymorphism
PPTX
Lecture 4_Java Method-constructor_imp_keywords
PDF
C# Summer course - Lecture 3
PPTX
Class object method constructors in java
PPTX
‫Object Oriented Programming_Lecture 3
PPTX
Core java oop
PPT
C++ classes tutorials
PDF
Delegate
PPT
38 object-concepts (1)
PPTX
Lecture - 3 Variables-data type_operators_oops concept
PPT
38 object-concepts
PPT
java tutorial 3
PPT
java tutorial 2
PPTX
Lecture 7 arrays
PPT
PDF
Basic object oriented concepts (1)
PDF
Java unit2
Python programming : Classes objects
C# Summer course - Lecture 4
Advance OOP concepts in Python
Python programming : Inheritance and polymorphism
Lecture 4_Java Method-constructor_imp_keywords
C# Summer course - Lecture 3
Class object method constructors in java
‫Object Oriented Programming_Lecture 3
Core java oop
C++ classes tutorials
Delegate
38 object-concepts (1)
Lecture - 3 Variables-data type_operators_oops concept
38 object-concepts
java tutorial 3
java tutorial 2
Lecture 7 arrays
Basic object oriented concepts (1)
Java unit2
Ad

Similar to Object Oriented Programming in PHP (20)

PPT
Class 7 - PHP Object Oriented Programming
PPTX
Lecture 17 - PHP-Object-Orientation.pptx
PPTX
Only oop
PDF
Demystifying Object-Oriented Programming #phpbnl18
PDF
Demystifying Object-Oriented Programming - Lone Star PHP
PDF
Demystifying Object-Oriented Programming - ZendCon 2016
PPTX
Object oriented programming in php
PDF
php_final_sy_semIV_notes_vision.pdf
PDF
php_final_sy_semIV_notes_vision.pdf
PDF
php_final_sy_semIV_notes_vision.pdf
PDF
php_final_sy_semIV_notes_vision (3).pdf
PDF
Demystifying Object-Oriented Programming - PHP UK Conference 2017
PPTX
Object-Oriented Programming with PHP (part 1)
PPTX
c91632a4-2e92-4edf-b750-358da15ed1b1.pptx
PPTX
Ch8(oop)
PPTX
OOP in PHP
PPTX
UNIT III (8).pptx
PPTX
UNIT III (8).pptx
PPTX
Object Oriented PHP by Dr.C.R.Dhivyaa Kongu Engineering College
PPTX
FFW Gabrovo PMG - PHP OOP Part 3
Class 7 - PHP Object Oriented Programming
Lecture 17 - PHP-Object-Orientation.pptx
Only oop
Demystifying Object-Oriented Programming #phpbnl18
Demystifying Object-Oriented Programming - Lone Star PHP
Demystifying Object-Oriented Programming - ZendCon 2016
Object oriented programming in php
php_final_sy_semIV_notes_vision.pdf
php_final_sy_semIV_notes_vision.pdf
php_final_sy_semIV_notes_vision.pdf
php_final_sy_semIV_notes_vision (3).pdf
Demystifying Object-Oriented Programming - PHP UK Conference 2017
Object-Oriented Programming with PHP (part 1)
c91632a4-2e92-4edf-b750-358da15ed1b1.pptx
Ch8(oop)
OOP in PHP
UNIT III (8).pptx
UNIT III (8).pptx
Object Oriented PHP by Dr.C.R.Dhivyaa Kongu Engineering College
FFW Gabrovo PMG - PHP OOP Part 3
Ad

More from wahidullah mudaser (6)

PDF
AJAX-Asynchronous JavaScript and XML
PDF
XML - Extensive Markup Language
PDF
PHP file handling
PDF
PHP with MySQL
PDF
PHP Arrays - indexed and associative array.
PDF
Introduction to PHP - Basics of PHP
AJAX-Asynchronous JavaScript and XML
XML - Extensive Markup Language
PHP file handling
PHP with MySQL
PHP Arrays - indexed and associative array.
Introduction to PHP - Basics of PHP

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Big Data Technologies - Introduction.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Approach and Philosophy of On baking technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Machine learning based COVID-19 study performance prediction
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
Building Integrated photovoltaic BIPV_UPV.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding
NewMind AI Monthly Chronicles - July 2025
Network Security Unit 5.pdf for BCA BBA.
Chapter 3 Spatial Domain Image Processing.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Big Data Technologies - Introduction.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Approach and Philosophy of On baking technology
Understanding_Digital_Forensics_Presentation.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Mobile App Security Testing_ A Comprehensive Guide.pdf
Machine learning based COVID-19 study performance prediction
The AUB Centre for AI in Media Proposal.docx
Digital-Transformation-Roadmap-for-Companies.pptx

Object Oriented Programming in PHP

  • 1. iFour ConsultancyOOP with PHP web Engineering || winter 2017 wahidullah Mudaser assignment.cs2017@gmail.com  Lecture 09  OOP in PHP
  • 2.  Classes and objects  Methods and properties  Scope  Inheritance  Static methods and properties  Constants  Abstraction  interfaces OUTLINE
  • 3.  The idea of Object Oriented Programming is to move the architecture of an application closer to real world  Classes are types of entities  Objects are single units of a given class  Example – Dog is a class, your dog Lassie is an object of class Dog  Classes have methods and properties  Classes and objects help to create well-structured application Classes and objects
  • 4.  Declaring of a class in PHP can be done anywhere in the code.  Two special methods: constructor and destructor  Executed when creating or destroying new object of this class  Used to initialize or cleanup properties and etc. Classes in PHP class Dog { … // declare methods and properties }
  • 5. Classes in PHP  Class definition begins with the class keyword, followed by its name and methods and properties list  Objects of class (instances) are created with the keyword new class A { function foo () { echo "foo here!"; } } $myFirstObject = new A(); $myFirstObject->foo(); // prints out "foo here!"; class name Method name and body Create new object of class A Execute method of this object
  • 6. Constructors  Each class can have only one constructor  All parameters of the creating of the object are passed to the constructor class A { function __construct ($bar) { echo $bar; } function foo () { echo "foo here!"; } } $myFirstObject = new A('test'); // print 'test'
  • 7. Properties  Class can have unlimited number of properties  The $this variable points to the current object – called execution context class A { var $bar; function __construct ($bar) { $this->bar = $bar; } function myPrint () { echo $this->bar; } } $myFirstObject = new A('test'); $myFirstObject->myPrint();
  • 8. More Properties  Class can specify default value for a property  Properties can be accessed from the outside world class A { var $bar = 'default value'; … class A { var $bar = 'default value'; … } $obj = new A; echo $obj->bar;
  • 9. $this  Example of what $this is  Can be used to access methods too class A { var $bar; function __construct ($bar) { $this->bar = $bar; } function myPrint () { echo $this->bar; } } $myFirstObject = new A('test'); $myFirstObject->myPrint(); // prints 'test' $anotherObject = new A('foo'); $anotherObject ->myPrint(); // prints 'foo';
  • 10. Destructors  Each class can have only one destructor  Must be public  Destructors are automatically called when script is shutting down class A { function __construct ($name) { $this->fp = fopen ($name, 'r'); } function __destruct () { fclose($this->fp); } } $myFirstObject = new A('test');
  • 11. Scope  Each method and property has a scope  It defines who can access it  Three levels – public, protected, private  Private can be access only by the object itself  Protected can be accessed by descendant classes (see inheritance)  Public can be accessed from the outside world  Level is added before function keyword or instead of var  var is old style (PHP 4) equivalent to public  Constructors always need to be public
  • 12. Scope Example class A { private $bar; public function __construct ($bar) { $this->bar = $bar; } public function myPrint () { echo $this->bar; } } $myFirstObject = new A('test'); $myFirstObject->myPrint(); // prints 'test' // this will not work: echo $myFirstObject->bar; The $bar variable is private so only the object can access it The myPrint method is public, so everyone can call it
  • 13. Inheritance  A class can inherit (extend) another class  It inherits all its methods and properties class A { public $bar = 'test'; public function example () { … } } class B extends A { … } $obj = new B(); echo $obj->bar; //prints 'test' //calls the A-class function $obj->example();
  • 14. Protected Scope  Method or property, declared as protected can be accessed in classes that inherit it, but cannot be accessed from the outside world class A { protected $bar = 'test'; } class B extends A { public function foo () { // this is allowed $this->bar = 'I see it'; } } $obj = new B(); echo $obj->bar; //not allowed
  • 15. Overriding  When a class inherits another, it can declare methods that override parent class methods  Method names are the same  Parameters may differ class A { public foo() { … } } class B extends A { public foo() { … } }
  • 16. Overriding Example class A { public foo() { echo 'called from A'; } } class B extends A { public foo() { echo 'called from B'; } } $obj1 = new A(); $obj2 = new B(); $obj1->foo(); // executes A's methods $obj2->foo(); // executes B's methods
  • 17. Accessing Parent Class  As -> is used to access object's methods and properties, the :: (double colon) is used to change scope  Scope Resolution Operator  parent:: can be used to access parent's class overridden methods  Example: call parent's constructor in the child one
  • 18. Accessing Parent Class  Example of calling parent constructor class A { protected $variable; public __construct() { $this->variable = 'test'; } } class B extends A { public __construct() { parent::__construct(); echo $this->variable; } } $obj1 = new B(); // prints 'test';
  • 19. The static Keyword  Defining method or property as 'static' makes them accessible without needing an instantiation of a class  Accessed with the double-colon (::) operator instead of the member (->) operator  $this is not available in static methods  Static properties and methods can also have scope defined – public, private or protected
  • 20. The static Keyword  Example of static method and property  Class can access statics with the self keyword  Outside world accesses statics with the class name class A { public static $myVariable; public static function myPrint() { echo self::$myVariable; } } A::$myVariable = 'test'; A::myPrint();
  • 21. Class Constants  Constants in PHP usually are declared with the define function  Constants can be defined in class  Differ from normal variables – no need for $ symbol to declare and access  Declared with the const keyword  Value must be supplied with the declaration  Accessed with scope operator (::)  Can be overridden by child classes  Value must be constant expression, not a variable, class member, result of operation or function call
  • 22. Class Constants  Example of a class constant class A { const myConstant = 'value'; public function showConstant() { echo self::myConstant; } } echo A::myConstant; $obj = new A(); $obj->showConstant();
  • 23. Abstraction  Classes, defined as abstract, cannot have instances (cannot create object of this class)  Abstract class must have at least one abstract method  Abstract methods do not have implementation (body) in the class  Only signature  The class must be inherited  The child class must implement all abstract methods  Cannot increase visibility
  • 24. Abstraction Example abstract class AbstractClass { abstract protected function getValue(); abstract public function getValue2($prefix); public function printOut () { echo $this->getValue(); } } class Class1 extends AbstractClass { protected function getValue (){ return "Class1"; } public function getValue2($prefix) { return $prefix."NAC1"; } }
  • 25. Abstraction Example (2) // continue from previous slide class Class2 extends AbstractClass { protected function getValue (){ return "Class2"; } public function getValue2($prefix) { return $prefix."NAC2"; } } $class1 = new Class1(); $class1->printOut(); // "Class1"; echo $class1->getValue2('FOO'); // FOONAC1 $class2 = new Class2(); $class2->printOut(); // "Class2"; echo $class2->getValue2('FOO'); //FOONAC2
  • 26. Interfaces  Object interfaces allow you to specify what methods a child class must implement  Declared with the interface keyword  Similar to abstract class  Interface can have only public methods  No method in interface can have implementation  Interfaces are inherited with the implements keyword (instead of extends)  One class may implement multiple interfaces, if they do not have methods with same names
  • 27. Interface Example interface iTemplate { public function set ($name, $value); public function getHTML($template); } class Template implements iTemplate { private $vars = array(); public function set ($name, $value) { $this->vars[$name] = $value; } public function getHTML($template) { foreach($this->vars as $name=>$value) { $template = str_replace( '{'.$name.'}', $value, $template); } return $template; } }