SlideShare a Scribd company logo
PHP-  Introduction to Object Oriented PHP
Introduction to Object-
Oriented PHP
2
• Topics:
o OOP concepts – overview, throughout the chapter
o Defining and using objects
• Defining and instantiating classes
• Defining and using variables, constants, and operations
• Getters and setters
o Defining and using inheritance and polymorphism
• Building subclasses and overriding operations
• Using interfaces
o Advanced object-oriented functionality in PHP
• Comparing objects, Printing objects,
• Type hinting, Cloning objects,
• Overloading methods, (some sections WILL NOT BE
COVERED!!!)
3
Developing Object-Oriented PHP
• Object-oriented programming (OOP) refers to the creation of reusable
software object-types / classes that can be efficiently developed and
easily incorporated into multiple programs.
• In OOP an object represents an entity in the real world (a student, a desk,
a button, a file, a text input area, a loan, a web page, a shopping cart).
• An OOP program = a collection of objects that interact to solve a task /
problem.
4
Object-Oriented Programming
• Objects are self-contained, with data and operations that pertain to them
assembled into a single entity.
o In procedural programming data and operations are separate → this
methodology requires sending data to methods!
• Objects have:
o Identity; ex: 2 “OK” buttons, same attributes → separate handle vars
o State → a set of attributes (aka member variables, properties, data
fields) = properties or variables that relate to / describe the object, with
their current values.
o Behavior → a set of operations (aka methods) = actions or functions
that the object can perform to modify itself – its state, or perform for
some external effect / result.
5
Object-Oriented Programming
• Encapsulation (aka data hiding) central in OOP
o = access to data within an object is available only via the object’s
operations (= known as the interface of the object)
o = internal aspects of objects are hidden, wrapped as a birthday
present is wrapped by colorful paper 
• Advantages:
o objects can be used as black-boxes, if their interface is known;
o implementation of an interface can be changed without a cascading
effect to other parts of the project → if the interface doesn’t change
6
Object-Oriented Programming
• Classes are constructs that define objects of the same type.
A class is a template or blueprint that defines what an object’s data and
methods will be.
Objects of a class have:
o Same operations, behaving the same way
o Same attributes representing the same features, but values of those
attributes (= state) can vary from object to object
• An object is an instance of a class.
(terms objects and instances are used interchangeably)
• Any number of instances of a class can be created.
7
Object-Oriented Programming
• Small Web projects
o Consist of web scripts designed and written using an ad-hoc approach; a
function-oriented, procedural methodology
• Large Web software projects
o Need a properly thought-out development methodology – OOP →
o OO approach can help manage project complexity, increase code
reusability, reduce costs.
o OO analysis and design process = decide what object types, what hidden
data/operations and wrapper operations for each object type
o UML – as tool in OO design, to allow to describe classes and class
relationships
8
OOP in Web Programming
• A minimal class definition:
class classname { // classname is a PHP identifier!
// the class body = data & function member definitions
}
• Attributes
o are declared as variables within the class definition using keywords that
match their visibility: public, private, or protected.
(Recall that PHP doesn't otherwise have declarations of variables →
data member declarations against the nature of PHP?)
• Operations
o are created by declaring functions within the class definition.
9
Creating Classes in PHP
• Constructor = function used to create an object of the
class
o Declared as a function with a special name:
function __construct (param_list) { … }
o Usually performs initialization tasks: e.g. sets attributes to appropriate
starting values
o Called automatically when an object is created
o A default no-argument constructor is provided by the compiler only if a
constructor function is not explicitly declared in the class
o Cannot be overloaded (= 2+ constructors for a class); if you need a
variable # of parameters, use flexible parameter lists…
10
Creating Classes in PHP
• Destructor = opposite of constructor
o Declared as a function with a special name, cannot take parameters
function __destruct () { … }
o Allows some functionality that will be automatically executed just before
an object is destroyed
 An object is removed when there is no reference variable/handle left
to it
 Usually during the "script shutdown phase", which is typically right
before the execution of the PHP script finishes
o A default destructor provided by the compiler only if a destructor
function is not explicitly declared in the class
11
Creating Classes in PHP
• Create an object of a class = a particular individual that is a member of the
class by using the new keyword:
$newClassVariable = new ClassName(actual_param_list);
• Notes:
o Scope for PHP classes is global (program script level), as it is for functions
o Class names are case insensitive as are functions
o PHP 5 allows you to define multiple classes in a single program script
o The PHP parser reads classes into memory immediately after functions ⇒
class construction does not fail because a class is not previously defined in
the program scope.
12
Instantiating Classes
• From operations within the class, class’s data / methods can be
accessed / called by using:
o $this = a variable that refers to the current instance of the class,
and can be used only in the definition of the class, including the
constructor & destructor
o The pointer operator -> (similar to Java’s object member access operator
“.” )
o class Test {
public $attribute;
function f ($val) {
$this -> attribute = $val; // $this is mandatory!
} // if omitted, $attribute is
treated
} // as a local var in the function
13
Using Data/Method Members
No $ sign here
• From outside the class, accessible (as determined by access modifiers) data
and methods are accessed through a variable holding an instance of the
class, by using the same pointer operator.
class Test {
public $attribute;
}
$t = new Test();
$t->attribute = “value”;
echo $t->attribute;
14
Using Data/Method Members
• Three access / visibility modifiers introduced in PHP 5, which affect the scope
of access to class variables and functions:
o public : public class variables and functions can be accessed from inside
and outside the class
o protected : hides a variable or function from direct external class access
+ protected members are available in subclasses
o private : hides a variable or function from direct external class access +
protected members are hidden (NOT available) from all subclasses
• An access modifier has to be provided for each class instance variable
• Static class variables and functions can be declared without an access
modifier → default is public
15
Defining and Using Variables, Constants
and Functions
• Encapsulation : hide attributes from direct access from outside a class and
provide controlled access through accessor and mutator functions
o You can write custom getVariable() / setVariable($var) functions or
o Overload the functionality with the __get() and __set() functions in PHP
• __get() and __set()
o Prototype:
mixed __get($var);
// param represents the name of an attribute, __get returns the value of
that attribute
void __set($var, $value);
// params are the name of an attribute and the value to set it to
16
Getters and Setters
• __get() and __set()
o Can only be used for non-static attributes!
o You do not directly call these functions;
For an instance $acc of the BankAccount class:
$acc->Balance = 1000;
implicitly calls the __set() function with the value of
$name set to ‘Balance’, and the value of $value set to
1000.
(__get() works in a similar way)
17
Getters and Setters
• __get() and __set() functions’ value: a single access
point to an attribute ensures complete control over:
o attribute’s values
function __set($name, $value) {
echo "<p>Setter for $name called!</p>";
if (strcasecmp($name, "Balance")==0 && ($value>=0))
$this->$name = $value;
...
}
o underlying implementation: as a variable, retrieved from a
db when needed, a value inferred based on the values of
other attributes
→ transparent for clients as long as the accessor / mutator18
Getters and Setters
• Classes in Web development:
o Pages
o User-interface components
o Shopping carts
o Product categories
o Customers
• TLA Consulting example revisited - a Page class, goals:
o A consistent look and feel across the pages of the website
o Limit the amount of HTML needed to create a new page: easily
generate common parts, describe only uncommon parts
o Easy maintainable when changes in the common parts
o Flexible enough: ex. allow proper navigation elements in each page
19
Designing Classes
• Attributes:
o $content → content of the page, a combination of HTML and text
o $title → page’s title, with a default title to avoid blank titles
o $keywords → a list of keywords, to be used by search engines
o $navigation → an associative array with keys the text for the buttons
and the value the URL of the target page
• Operations:
o __set()
o Display() → to display a page of HTML, calls other functions to display
parts of the page:
o DisplayTitle(), DisplayKeywords(), DisplayStyles(), DisplayHeader(),
DisplayMenu(), DisplayFooter() → can be overridden in a possible
subclass
20
Class Page
ThankThank You !!!You !!!
For More Information click below link:
Follow Us on:
http://vibranttechnologies.co.in/php-classes-in-
mumbai.html

More Related Content

PDF
09 Object Oriented Programming in PHP #burningkeyboards
PPT
PHP - Introduction to Object Oriented Programming with PHP
PDF
Object Oriented Programming in PHP
PDF
OOP in PHP
PPT
Oops in PHP
PPT
Class 7 - PHP Object Oriented Programming
PDF
A Gentle Introduction To Object Oriented Php
PPTX
Object oreinted php | OOPs
09 Object Oriented Programming in PHP #burningkeyboards
PHP - Introduction to Object Oriented Programming with PHP
Object Oriented Programming in PHP
OOP in PHP
Oops in PHP
Class 7 - PHP Object Oriented Programming
A Gentle Introduction To Object Oriented Php
Object oreinted php | OOPs

What's hot (20)

PPT
Oops concepts in php
PPT
Php Oop
PPTX
Oop in-php
PDF
Object Oriented Programming with PHP 5 - More OOP
PPTX
Object oriented programming in php 5
PPT
Introduction to OOP with PHP
ZIP
Object Oriented PHP5
PPT
Synapseindia object oriented programming in php
PDF
Intermediate OOP in PHP
PPT
Class and Objects in PHP
PPTX
FFW Gabrovo PMG - PHP OOP Part 3
PPTX
Introduction to PHP OOP
PPT
Oops in PHP By Nyros Developer
PPT
Advanced php
PPTX
Intro to OOP PHP and Github
PPTX
Php oop presentation
PPTX
Only oop
PPTX
Oops in php
Oops concepts in php
Php Oop
Oop in-php
Object Oriented Programming with PHP 5 - More OOP
Object oriented programming in php 5
Introduction to OOP with PHP
Object Oriented PHP5
Synapseindia object oriented programming in php
Intermediate OOP in PHP
Class and Objects in PHP
FFW Gabrovo PMG - PHP OOP Part 3
Introduction to PHP OOP
Oops in PHP By Nyros Developer
Advanced php
Intro to OOP PHP and Github
Php oop presentation
Only oop
Oops in php
Ad

Viewers also liked (10)

PDF
O que esperar do Zend Framework 2
PPT
SQL Devlopment for 10 ppt
PDF
Desenvolvimento Web com CakePHP
PPS
Workshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
PDF
PHP 5.3 - Estruturas de Controle
PPT
Css Ppt
PDF
HTML5 for PHP Developers - IPC
PPSX
Classroom Objects: PowerPoint Activities
PPT
PPTX
PHP Powerpoint -- Teach PHP with this
O que esperar do Zend Framework 2
SQL Devlopment for 10 ppt
Desenvolvimento Web com CakePHP
Workshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
PHP 5.3 - Estruturas de Controle
Css Ppt
HTML5 for PHP Developers - IPC
Classroom Objects: PowerPoint Activities
PHP Powerpoint -- Teach PHP with this
Ad

Similar to PHP- Introduction to Object Oriented PHP (20)

PDF
Object Oriented PHP - PART-1
PPTX
Php oop (1)
PPTX
Lecture-10_PHP-OOP.pptx
PPTX
c91632a4-2e92-4edf-b750-358da15ed1b1.pptx
DOCX
Oops concept in php
PPTX
Introduction to PHP and MySql basics.pptx
PDF
Oop in php tutorial
PDF
oop_in_php_tutorial_for_killerphp.com
PDF
oop_in_php_tutorial_for_killerphp.com
PDF
Oop in php_tutorial_for_killerphp.com
PPTX
Chap4 oop class (php) part 1
PPTX
Object Oriented PHP by Dr.C.R.Dhivyaa Kongu Engineering College
PPTX
UNIT III (8).pptx
PPTX
UNIT III (8).pptx
PDF
OOP in PHP
PPTX
Ch8(oop)
PDF
Oop in php_tutorial
PPTX
Oopsinphp
PPTX
Object oriented programming in php
PPT
Basic Oops concept of PHP
Object Oriented PHP - PART-1
Php oop (1)
Lecture-10_PHP-OOP.pptx
c91632a4-2e92-4edf-b750-358da15ed1b1.pptx
Oops concept in php
Introduction to PHP and MySql basics.pptx
Oop in php tutorial
oop_in_php_tutorial_for_killerphp.com
oop_in_php_tutorial_for_killerphp.com
Oop in php_tutorial_for_killerphp.com
Chap4 oop class (php) part 1
Object Oriented PHP by Dr.C.R.Dhivyaa Kongu Engineering College
UNIT III (8).pptx
UNIT III (8).pptx
OOP in PHP
Ch8(oop)
Oop in php_tutorial
Oopsinphp
Object oriented programming in php
Basic Oops concept of PHP

More from Vibrant Technologies & Computers (20)

PPT
Buisness analyst business analysis overview ppt 5
PPT
SQL Introduction to displaying data from multiple tables
PPT
SQL- Introduction to MySQL
PPT
SQL- Introduction to SQL database
PPT
ITIL - introduction to ITIL
PPT
Salesforce - Introduction to Security & Access
PPT
Data ware housing- Introduction to olap .
PPT
Data ware housing - Introduction to data ware housing process.
PPT
Data ware housing- Introduction to data ware housing
PPT
Salesforce - classification of cloud computing
PPT
Salesforce - cloud computing fundamental
PPT
SQL- Introduction to PL/SQL
PPT
SQL- Introduction to advanced sql concepts
PPT
SQL Inteoduction to SQL manipulating of data
PPT
SQL- Introduction to SQL Set Operations
PPT
Sas - Introduction to designing the data mart
PPT
Sas - Introduction to working under change management
PPT
SAS - overview of SAS
PPT
Teradata - Architecture of Teradata
PPT
Teradata - Restoring Data
Buisness analyst business analysis overview ppt 5
SQL Introduction to displaying data from multiple tables
SQL- Introduction to MySQL
SQL- Introduction to SQL database
ITIL - introduction to ITIL
Salesforce - Introduction to Security & Access
Data ware housing- Introduction to olap .
Data ware housing - Introduction to data ware housing process.
Data ware housing- Introduction to data ware housing
Salesforce - classification of cloud computing
Salesforce - cloud computing fundamental
SQL- Introduction to PL/SQL
SQL- Introduction to advanced sql concepts
SQL Inteoduction to SQL manipulating of data
SQL- Introduction to SQL Set Operations
Sas - Introduction to designing the data mart
Sas - Introduction to working under change management
SAS - overview of SAS
Teradata - Architecture of Teradata
Teradata - Restoring Data

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
A Presentation on Artificial Intelligence
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
Teaching material agriculture food technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
cuic standard and advanced reporting.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Electronic commerce courselecture one. Pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Approach and Philosophy of On baking technology
“AI and Expert System Decision Support & Business Intelligence Systems”
NewMind AI Weekly Chronicles - August'25 Week I
The Rise and Fall of 3GPP – Time for a Sabbatical?
A Presentation on Artificial Intelligence
Mobile App Security Testing_ A Comprehensive Guide.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Teaching material agriculture food technology
Understanding_Digital_Forensics_Presentation.pptx
cuic standard and advanced reporting.pdf
MYSQL Presentation for SQL database connectivity
Electronic commerce courselecture one. Pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Network Security Unit 5.pdf for BCA BBA.
Chapter 3 Spatial Domain Image Processing.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...

PHP- Introduction to Object Oriented PHP

  • 3. • Topics: o OOP concepts – overview, throughout the chapter o Defining and using objects • Defining and instantiating classes • Defining and using variables, constants, and operations • Getters and setters o Defining and using inheritance and polymorphism • Building subclasses and overriding operations • Using interfaces o Advanced object-oriented functionality in PHP • Comparing objects, Printing objects, • Type hinting, Cloning objects, • Overloading methods, (some sections WILL NOT BE COVERED!!!) 3 Developing Object-Oriented PHP
  • 4. • Object-oriented programming (OOP) refers to the creation of reusable software object-types / classes that can be efficiently developed and easily incorporated into multiple programs. • In OOP an object represents an entity in the real world (a student, a desk, a button, a file, a text input area, a loan, a web page, a shopping cart). • An OOP program = a collection of objects that interact to solve a task / problem. 4 Object-Oriented Programming
  • 5. • Objects are self-contained, with data and operations that pertain to them assembled into a single entity. o In procedural programming data and operations are separate → this methodology requires sending data to methods! • Objects have: o Identity; ex: 2 “OK” buttons, same attributes → separate handle vars o State → a set of attributes (aka member variables, properties, data fields) = properties or variables that relate to / describe the object, with their current values. o Behavior → a set of operations (aka methods) = actions or functions that the object can perform to modify itself – its state, or perform for some external effect / result. 5 Object-Oriented Programming
  • 6. • Encapsulation (aka data hiding) central in OOP o = access to data within an object is available only via the object’s operations (= known as the interface of the object) o = internal aspects of objects are hidden, wrapped as a birthday present is wrapped by colorful paper  • Advantages: o objects can be used as black-boxes, if their interface is known; o implementation of an interface can be changed without a cascading effect to other parts of the project → if the interface doesn’t change 6 Object-Oriented Programming
  • 7. • Classes are constructs that define objects of the same type. A class is a template or blueprint that defines what an object’s data and methods will be. Objects of a class have: o Same operations, behaving the same way o Same attributes representing the same features, but values of those attributes (= state) can vary from object to object • An object is an instance of a class. (terms objects and instances are used interchangeably) • Any number of instances of a class can be created. 7 Object-Oriented Programming
  • 8. • Small Web projects o Consist of web scripts designed and written using an ad-hoc approach; a function-oriented, procedural methodology • Large Web software projects o Need a properly thought-out development methodology – OOP → o OO approach can help manage project complexity, increase code reusability, reduce costs. o OO analysis and design process = decide what object types, what hidden data/operations and wrapper operations for each object type o UML – as tool in OO design, to allow to describe classes and class relationships 8 OOP in Web Programming
  • 9. • A minimal class definition: class classname { // classname is a PHP identifier! // the class body = data & function member definitions } • Attributes o are declared as variables within the class definition using keywords that match their visibility: public, private, or protected. (Recall that PHP doesn't otherwise have declarations of variables → data member declarations against the nature of PHP?) • Operations o are created by declaring functions within the class definition. 9 Creating Classes in PHP
  • 10. • Constructor = function used to create an object of the class o Declared as a function with a special name: function __construct (param_list) { … } o Usually performs initialization tasks: e.g. sets attributes to appropriate starting values o Called automatically when an object is created o A default no-argument constructor is provided by the compiler only if a constructor function is not explicitly declared in the class o Cannot be overloaded (= 2+ constructors for a class); if you need a variable # of parameters, use flexible parameter lists… 10 Creating Classes in PHP
  • 11. • Destructor = opposite of constructor o Declared as a function with a special name, cannot take parameters function __destruct () { … } o Allows some functionality that will be automatically executed just before an object is destroyed  An object is removed when there is no reference variable/handle left to it  Usually during the "script shutdown phase", which is typically right before the execution of the PHP script finishes o A default destructor provided by the compiler only if a destructor function is not explicitly declared in the class 11 Creating Classes in PHP
  • 12. • Create an object of a class = a particular individual that is a member of the class by using the new keyword: $newClassVariable = new ClassName(actual_param_list); • Notes: o Scope for PHP classes is global (program script level), as it is for functions o Class names are case insensitive as are functions o PHP 5 allows you to define multiple classes in a single program script o The PHP parser reads classes into memory immediately after functions ⇒ class construction does not fail because a class is not previously defined in the program scope. 12 Instantiating Classes
  • 13. • From operations within the class, class’s data / methods can be accessed / called by using: o $this = a variable that refers to the current instance of the class, and can be used only in the definition of the class, including the constructor & destructor o The pointer operator -> (similar to Java’s object member access operator “.” ) o class Test { public $attribute; function f ($val) { $this -> attribute = $val; // $this is mandatory! } // if omitted, $attribute is treated } // as a local var in the function 13 Using Data/Method Members No $ sign here
  • 14. • From outside the class, accessible (as determined by access modifiers) data and methods are accessed through a variable holding an instance of the class, by using the same pointer operator. class Test { public $attribute; } $t = new Test(); $t->attribute = “value”; echo $t->attribute; 14 Using Data/Method Members
  • 15. • Three access / visibility modifiers introduced in PHP 5, which affect the scope of access to class variables and functions: o public : public class variables and functions can be accessed from inside and outside the class o protected : hides a variable or function from direct external class access + protected members are available in subclasses o private : hides a variable or function from direct external class access + protected members are hidden (NOT available) from all subclasses • An access modifier has to be provided for each class instance variable • Static class variables and functions can be declared without an access modifier → default is public 15 Defining and Using Variables, Constants and Functions
  • 16. • Encapsulation : hide attributes from direct access from outside a class and provide controlled access through accessor and mutator functions o You can write custom getVariable() / setVariable($var) functions or o Overload the functionality with the __get() and __set() functions in PHP • __get() and __set() o Prototype: mixed __get($var); // param represents the name of an attribute, __get returns the value of that attribute void __set($var, $value); // params are the name of an attribute and the value to set it to 16 Getters and Setters
  • 17. • __get() and __set() o Can only be used for non-static attributes! o You do not directly call these functions; For an instance $acc of the BankAccount class: $acc->Balance = 1000; implicitly calls the __set() function with the value of $name set to ‘Balance’, and the value of $value set to 1000. (__get() works in a similar way) 17 Getters and Setters
  • 18. • __get() and __set() functions’ value: a single access point to an attribute ensures complete control over: o attribute’s values function __set($name, $value) { echo "<p>Setter for $name called!</p>"; if (strcasecmp($name, "Balance")==0 && ($value>=0)) $this->$name = $value; ... } o underlying implementation: as a variable, retrieved from a db when needed, a value inferred based on the values of other attributes → transparent for clients as long as the accessor / mutator18 Getters and Setters
  • 19. • Classes in Web development: o Pages o User-interface components o Shopping carts o Product categories o Customers • TLA Consulting example revisited - a Page class, goals: o A consistent look and feel across the pages of the website o Limit the amount of HTML needed to create a new page: easily generate common parts, describe only uncommon parts o Easy maintainable when changes in the common parts o Flexible enough: ex. allow proper navigation elements in each page 19 Designing Classes
  • 20. • Attributes: o $content → content of the page, a combination of HTML and text o $title → page’s title, with a default title to avoid blank titles o $keywords → a list of keywords, to be used by search engines o $navigation → an associative array with keys the text for the buttons and the value the URL of the target page • Operations: o __set() o Display() → to display a page of HTML, calls other functions to display parts of the page: o DisplayTitle(), DisplayKeywords(), DisplayStyles(), DisplayHeader(), DisplayMenu(), DisplayFooter() → can be overridden in a possible subclass 20 Class Page
  • 21. ThankThank You !!!You !!! For More Information click below link: Follow Us on: http://vibranttechnologies.co.in/php-classes-in- mumbai.html

Editor's Notes

  • #10: Public can be replaced with var -&amp;gt; public visibility by default!
  • #12: If ref var is assigned null -&amp;gt; destructor called if no other ref var left to that object!