KEMBAR78
PHP- Introduction to Object Oriented PHP | PPT
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

PHP- Introduction to Object Oriented PHP

  • 2.
  • 3.
    • Topics: o OOPconcepts – 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 areself-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 (akadata 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 areconstructs 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 Webprojects 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 minimalclass 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 anobject 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 operationswithin 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 outsidethe 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 inWeb 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!