SlideShare a Scribd company logo
PHP Classes  and  Object Orientation
Reminder… a function Reusable piece of code. Has its own ‘local scope’. function  my_func($arg1,$arg2) { << function statements >> }
Conceptually, what does a function represent?  … give the function something (arguments), it does something with them, and then returns a result… Action  or  Method
What is a  class ? Conceptually, a class represents an  object , with associated methods and variables
Class Definition <?php class  dog { public  $name; public function  bark() { echo   ‘Woof!’ ; } }  ?> An example class definition for a dog. The dog object has a single attribute, the name, and can perform the action of barking.
Class Definition <?php class  dog { public  $name; public function  bark() { echo   ‘Woof!’ ; } }  ?> class  dog { Define the  name  of the class.
Class Definition <?php class  dog { var  $name public function  bark() { echo   ‘Woof!’ ; } }  ?> public  $name; Define an object attribute (variable), the dog’s name.
Class Definition <?php class  dog { public  $name; function  bark() { echo   ‘Woof!’ ; } }  ?> public function  bark() { echo   ‘Woof!’ ; } Define an object action (function), the dog’s bark.
Class Definition <?php class  dog { public  $name; public function  bark() { echo   ‘Woof!’ ; } }  ?> } End the class definition
Class Defintion Similar to defining a function.. The definition  does not do anything   by itself . It is a blueprint, or description, of an object. To do something, you need to  use  the class…
Class Usage <?php require ( ‘dog.class.php’ ); $puppy =  new  dog(); $puppy->name =  ‘Rover’ ; echo  “ {$puppy->name}  says ” ; $puppy->bark(); ?>
Class Usage <?php require ( ‘dog.class.php’ ); $puppy =  new  dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> require ( ‘dog.class.php’ ); Include the class definition
Class Usage <?php require ( ‘dog.class.php’ ); $puppy =  new  dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> $puppy =  new  dog(); Create a new  instance  of the class.
Class Usage <?php require ( ‘dog.class.php’ ); $puppy =  new  dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> $puppy->name =  ‘Rover’ ; Set the name variable  of this instance  to ‘Rover’.
Class Usage <?php require ( ‘dog.class.php’ ); $puppy =  new  dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> echo  “ {$puppy->name}  says ” ; Use the name variable of this instance in an echo statement..
Class Usage <?php require ( ‘dog.class.php’ ); $puppy =  new  dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> $puppy->bark(); Use the dog object bark method.
Class Usage <?php require ( ‘dog.class.php’ ); $puppy =  new  dog(); $puppy->name =  ‘Rover’ ; echo  “ {$puppy->name}  says ” ; $puppy->bark(); ?> [example file: classes1.php]
One dollar and one only… $puppy->name =  ‘Rover’ ; The most common mistake is to use more than one dollar sign when accessing variables. The following means something entirely different.. $puppy->$name =  ‘Rover’ ;
Using attributes within the class.. If you need to use the class variables within any class actions, use the special variable  $this  in the definition: class  dog {   public  $name;   public function  bark() {   echo  $this->name. ‘ says Woof!’ ;  } }
Constructor methods A  constructor  method is a function that is automatically executed when the class is first instantiated. Create a constructor by including a function within the class definition with the  __construct name . Remember.. if the constructor requires arguments, they must be passed when it is instantiated!
Constructor Example <?php class  dog { public  $name; public function   __construct ($nametext) { $this->name = $nametext; }   public function  bark() { echo  ‘Woof!’; } }  ?> Constructor function
Constructor Example <?php … $puppy =  new  dog( ‘Rover’ ); … ?> Constructor arguments are passed during the instantiation of the object.
Class Scope Like functions,  each instantiated object  has its own local scope. e.g. if 2 different dog objects are instantiated,  $puppy1  and  $puppy2 , the two dog names  $puppy1->name  and  $puppy2->name  are entirely independent..
Inheritance The real power of using classes is the property of inheritance – creating a hierarchy of interlinked classes.  dog poodle alsatian parent children
Inheritance The child classes ‘inherit’ all the methods and variables of the parent class, and can add extra ones of their own.  e.g. the child classes poodle inherits the variable ‘name’ and method ‘bark’ from the dog class, and can add extra ones…
Inheritance example The American Kennel Club (AKC) recognizes three sizes of poodle -  Standard, Miniature, and Toy…  class  poodle  extends  dog { public  $type; public function  set_type($height) { if  ($height<10) {  $this->type =  ‘Toy’ ; }  elseif  ($height>15) { $this->type =  ‘Standard’ ; }  else  { $this->type =  ‘Miniature’ ; } } }
Inheritance example The American Kennel Club (AKC) recognizes three sizes of poodle -  Standard, Miniature, and Toy…  class  poodle  extends  dog { public  $type public function  set_type($height) { if  ($height<10) {  $this->type =  ‘Toy’ ; }  elseif  ($height>15) { $this->type =  ‘Standard’ ; }  else  { $this->type =  ‘Miniature’ ; } } } class  poodle  extends  dog { Note the use of the  extends  keyword to indicate that the poodle class is a child of the dog class…
Inheritance example … $puppy =  new  poodle( ‘Oscar’ ); $puppy->set_type(12);  // 12 inches high! echo   “Poodle is called  {$puppy->name} , ” ; echo   “of type  {$puppy->type} , saying “ ; echo  $puppy->bark(); …
…a poodle will always ‘Yip!’ It is possible to over-ride a parent method with a new method if it is given the same name in the child class.. class  poodle  extends  dog { … public function  bark() { echo  ‘Yip!’; } … }
Child Constructors? If the child class possesses a constructor function, it is executed  and any parent constructor is ignored . If the child class does not have a constructor, the parent’s constructor is executed. If the child and parent does not have a constructor, the grandparent constructor is attempted… …  etc.
Objects within Objects It is perfectly possible to include objects within another object.. class  dogtag {      public  $words; } class  dog {      public  $name;      public  $tag;      public function  bark() {          echo  &quot;Woof!\n&quot;;     } }  … $puppy =  new  dog; $puppy->name =  “Rover&quot; ; $poppy->tag =  new  dogtag; $poppy->tag->words =  “blah” ; …
Deleting objects So far our objects have not been destroyed till the end of our scripts.. Like variables, it is possible to explicitly destroy an object using the  unset ()  function.
A copy, or not a copy.. Entire objects can be passed as arguments to functions, and can use all methods/variables within the function.  Remember however.. like functions the object is  COPIED  when passed as an argument unless you specify the argument as a reference variable  &$variable
Why Object Orientate? Reason 1 Once you have your head round the concept of objects, intuitively named object orientated code becomes  easy to understand . e.g.    $order->display_basket();   $user->card[2]->pay($order);   $order->display_status();
Why Object Orientate? Reason 2 Existing code becomes easier to maintain. e.g. If you want to extend the capability of a piece of code, you can merely edit the class definitions…
Why Object Orientate? Reason 3 New code becomes much quicker to write once you have a suitable class library. e.g. Need a new object..? Usually can extend an existing object. A lot of high quality code is distributed as classes (e.g.  http:// pear.php.net ).
There is a lot more… We have really only touched the edge of object orientated programming… http:// www.php.net/manual/en/language.oop.php   …  but I don’t want to confuse you too much!
PHP4 vs. PHP5 OOP purists will tell you that the object support in PHP4 is sketchy. They are right, in that a lot of features are missing. PHP5 OOP system has had a big redesign and is  much  better.  …but it is worth it to produce OOP  code in either PHP4 or PHP5…

More Related Content

PPT
PHP - Introduction to Object Oriented Programming with PHP
PDF
4.2 PHP Function
PPTX
PHP Presentation
PPT
Php forms
PDF
Php tutorial(w3schools)
PPT
PHP variables
PHP - Introduction to Object Oriented Programming with PHP
4.2 PHP Function
PHP Presentation
Php forms
Php tutorial(w3schools)
PHP variables

What's hot (20)

PPTX
Statements and Conditions in PHP
PPTX
2. Classes | Object Oriented Programming in JavaScript | ES6 | JavaScript
PPTX
Inheritance in JAVA PPT
PPTX
Php.ppt
PPTX
Inheritance in java
PDF
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
PDF
Constructors and destructors
PPT
PHP - Introduction to PHP Forms
PPTX
Classes, objects in JAVA
PPTX
Form Handling using PHP
PPTX
PHP FUNCTIONS
PPT
Input and output in C++
PPTX
Object oriented programming in python
PPTX
Introduction to php
PPT
Php Using Arrays
PPTX
Javascript operators
PPTX
Constructor and destructor
PPTX
This pointer
ODP
OOP java
PPTX
array of object pointer in c++
Statements and Conditions in PHP
2. Classes | Object Oriented Programming in JavaScript | ES6 | JavaScript
Inheritance in JAVA PPT
Php.ppt
Inheritance in java
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
Constructors and destructors
PHP - Introduction to PHP Forms
Classes, objects in JAVA
Form Handling using PHP
PHP FUNCTIONS
Input and output in C++
Object oriented programming in python
Introduction to php
Php Using Arrays
Javascript operators
Constructor and destructor
This pointer
OOP java
array of object pointer in c++
Ad

Viewers also liked (20)

PPT
Class 7 - PHP Object Oriented Programming
ODP
Beginners Guide to Object Orientation in PHP
PPT
PPTX
Oop in-php
PDF
Modul 3 Cara Membuat View Pada CodeIgniter
PPTX
Modular PHP Development using CodeIgniter Bonfire
PPT
Functions in php
PPT
PPT
My SQl
PPT
PPT
IP Addressing
PPT
Saftey
PPT
PPTX
1. review jurnal effect dwi hastho
PPT
I/O Management
PPT
Shell Script
PPT
Operating systems
PPT
Network Security
PDF
The Dining Philosophers problem in Bangla
PPT
Class 7 - PHP Object Oriented Programming
Beginners Guide to Object Orientation in PHP
Oop in-php
Modul 3 Cara Membuat View Pada CodeIgniter
Modular PHP Development using CodeIgniter Bonfire
Functions in php
My SQl
IP Addressing
Saftey
1. review jurnal effect dwi hastho
I/O Management
Shell Script
Operating systems
Network Security
The Dining Philosophers problem in Bangla
Ad

Similar to Class and Objects in PHP (20)

PPT
Oops implemetation material
PPTX
06-classes.ppt (copy).pptx
PPT
SQL Devlopment for 10 ppt
PPTX
Object Oriented PHP by Dr.C.R.Dhivyaa Kongu Engineering College
PPTX
UNIT III (8).pptx
PPTX
UNIT III (8).pptx
PPTX
Lecture-10_PHP-OOP.pptx
PPT
Php Oop
PPT
PHP-05-Objects.ppt
PDF
Object Oriented Programming in PHP
PPTX
c91632a4-2e92-4edf-b750-358da15ed1b1.pptx
PPT
UNIT-IV WT web technology for 1st year cs
PPTX
Only oop
PPT
Synapseindia object oriented programming in php
PPTX
Ch8(oop)
PPT
PPTX
Introduction to PHP and MySql basics.pptx
ZIP
Object Oriented PHP5
Oops implemetation material
06-classes.ppt (copy).pptx
SQL Devlopment for 10 ppt
Object Oriented PHP by Dr.C.R.Dhivyaa Kongu Engineering College
UNIT III (8).pptx
UNIT III (8).pptx
Lecture-10_PHP-OOP.pptx
Php Oop
PHP-05-Objects.ppt
Object Oriented Programming in PHP
c91632a4-2e92-4edf-b750-358da15ed1b1.pptx
UNIT-IV WT web technology for 1st year cs
Only oop
Synapseindia object oriented programming in php
Ch8(oop)
Introduction to PHP and MySql basics.pptx
Object Oriented PHP5

More from Ramasubbu .P (20)

PPT
PPT
Milling 2
PPT
MIlling 1
PPT
Drillings
PPT
Holding
PPT
Harvesting
PPT
Plough
PPT
Tractor PTO
PPT
Tractor Components
PPT
PPT
PPT
PPT
Hacker
PPT
Denail of Service
PPT
RAID CONCEPT
PPT
PPT
Sequential Logic Circuit
PPT
PPT
PPT
Ladder
Milling 2
MIlling 1
Drillings
Holding
Harvesting
Plough
Tractor PTO
Tractor Components
Hacker
Denail of Service
RAID CONCEPT
Sequential Logic Circuit
Ladder

Recently uploaded (20)

PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
Business Ethics Teaching Materials for college
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Insiders guide to clinical Medicine.pdf
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PPTX
Cell Structure & Organelles in detailed.
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Complications of Minimal Access Surgery at WLH
PDF
Basic Mud Logging Guide for educational purpose
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
Pre independence Education in Inndia.pdf
PDF
VCE English Exam - Section C Student Revision Booklet
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPH.pptx obstetrics and gynecology in nursing
Renaissance Architecture: A Journey from Faith to Humanism
Microbial disease of the cardiovascular and lymphatic systems
Business Ethics Teaching Materials for college
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Insiders guide to clinical Medicine.pdf
Final Presentation General Medicine 03-08-2024.pptx
Anesthesia in Laparoscopic Surgery in India
Supply Chain Operations Speaking Notes -ICLT Program
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
Cell Structure & Organelles in detailed.
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
2.FourierTransform-ShortQuestionswithAnswers.pdf
Complications of Minimal Access Surgery at WLH
Basic Mud Logging Guide for educational purpose
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Pre independence Education in Inndia.pdf
VCE English Exam - Section C Student Revision Booklet

Class and Objects in PHP

  • 1. PHP Classes and Object Orientation
  • 2. Reminder… a function Reusable piece of code. Has its own ‘local scope’. function my_func($arg1,$arg2) { << function statements >> }
  • 3. Conceptually, what does a function represent? … give the function something (arguments), it does something with them, and then returns a result… Action or Method
  • 4. What is a class ? Conceptually, a class represents an object , with associated methods and variables
  • 5. Class Definition <?php class dog { public $name; public function bark() { echo ‘Woof!’ ; } } ?> An example class definition for a dog. The dog object has a single attribute, the name, and can perform the action of barking.
  • 6. Class Definition <?php class dog { public $name; public function bark() { echo ‘Woof!’ ; } } ?> class dog { Define the name of the class.
  • 7. Class Definition <?php class dog { var $name public function bark() { echo ‘Woof!’ ; } } ?> public $name; Define an object attribute (variable), the dog’s name.
  • 8. Class Definition <?php class dog { public $name; function bark() { echo ‘Woof!’ ; } } ?> public function bark() { echo ‘Woof!’ ; } Define an object action (function), the dog’s bark.
  • 9. Class Definition <?php class dog { public $name; public function bark() { echo ‘Woof!’ ; } } ?> } End the class definition
  • 10. Class Defintion Similar to defining a function.. The definition does not do anything by itself . It is a blueprint, or description, of an object. To do something, you need to use the class…
  • 11. Class Usage <?php require ( ‘dog.class.php’ ); $puppy = new dog(); $puppy->name = ‘Rover’ ; echo “ {$puppy->name} says ” ; $puppy->bark(); ?>
  • 12. Class Usage <?php require ( ‘dog.class.php’ ); $puppy = new dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> require ( ‘dog.class.php’ ); Include the class definition
  • 13. Class Usage <?php require ( ‘dog.class.php’ ); $puppy = new dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> $puppy = new dog(); Create a new instance of the class.
  • 14. Class Usage <?php require ( ‘dog.class.php’ ); $puppy = new dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> $puppy->name = ‘Rover’ ; Set the name variable of this instance to ‘Rover’.
  • 15. Class Usage <?php require ( ‘dog.class.php’ ); $puppy = new dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> echo “ {$puppy->name} says ” ; Use the name variable of this instance in an echo statement..
  • 16. Class Usage <?php require ( ‘dog.class.php’ ); $puppy = new dog(); $puppy->name = ‘Rover’; echo “{$puppy->name} says ”; $puppy->bark(); ?> $puppy->bark(); Use the dog object bark method.
  • 17. Class Usage <?php require ( ‘dog.class.php’ ); $puppy = new dog(); $puppy->name = ‘Rover’ ; echo “ {$puppy->name} says ” ; $puppy->bark(); ?> [example file: classes1.php]
  • 18. One dollar and one only… $puppy->name = ‘Rover’ ; The most common mistake is to use more than one dollar sign when accessing variables. The following means something entirely different.. $puppy->$name = ‘Rover’ ;
  • 19. Using attributes within the class.. If you need to use the class variables within any class actions, use the special variable $this in the definition: class dog { public $name; public function bark() { echo $this->name. ‘ says Woof!’ ; } }
  • 20. Constructor methods A constructor method is a function that is automatically executed when the class is first instantiated. Create a constructor by including a function within the class definition with the __construct name . Remember.. if the constructor requires arguments, they must be passed when it is instantiated!
  • 21. Constructor Example <?php class dog { public $name; public function __construct ($nametext) { $this->name = $nametext; } public function bark() { echo ‘Woof!’; } } ?> Constructor function
  • 22. Constructor Example <?php … $puppy = new dog( ‘Rover’ ); … ?> Constructor arguments are passed during the instantiation of the object.
  • 23. Class Scope Like functions, each instantiated object has its own local scope. e.g. if 2 different dog objects are instantiated, $puppy1 and $puppy2 , the two dog names $puppy1->name and $puppy2->name are entirely independent..
  • 24. Inheritance The real power of using classes is the property of inheritance – creating a hierarchy of interlinked classes. dog poodle alsatian parent children
  • 25. Inheritance The child classes ‘inherit’ all the methods and variables of the parent class, and can add extra ones of their own. e.g. the child classes poodle inherits the variable ‘name’ and method ‘bark’ from the dog class, and can add extra ones…
  • 26. Inheritance example The American Kennel Club (AKC) recognizes three sizes of poodle -  Standard, Miniature, and Toy… class poodle extends dog { public $type; public function set_type($height) { if ($height<10) { $this->type = ‘Toy’ ; } elseif ($height>15) { $this->type = ‘Standard’ ; } else { $this->type = ‘Miniature’ ; } } }
  • 27. Inheritance example The American Kennel Club (AKC) recognizes three sizes of poodle -  Standard, Miniature, and Toy… class poodle extends dog { public $type public function set_type($height) { if ($height<10) { $this->type = ‘Toy’ ; } elseif ($height>15) { $this->type = ‘Standard’ ; } else { $this->type = ‘Miniature’ ; } } } class poodle extends dog { Note the use of the extends keyword to indicate that the poodle class is a child of the dog class…
  • 28. Inheritance example … $puppy = new poodle( ‘Oscar’ ); $puppy->set_type(12); // 12 inches high! echo “Poodle is called {$puppy->name} , ” ; echo “of type {$puppy->type} , saying “ ; echo $puppy->bark(); …
  • 29. …a poodle will always ‘Yip!’ It is possible to over-ride a parent method with a new method if it is given the same name in the child class.. class poodle extends dog { … public function bark() { echo ‘Yip!’; } … }
  • 30. Child Constructors? If the child class possesses a constructor function, it is executed and any parent constructor is ignored . If the child class does not have a constructor, the parent’s constructor is executed. If the child and parent does not have a constructor, the grandparent constructor is attempted… … etc.
  • 31. Objects within Objects It is perfectly possible to include objects within another object.. class dogtag {      public $words; } class dog {      public $name;      public $tag;      public function bark() {          echo &quot;Woof!\n&quot;;     } } … $puppy = new dog; $puppy->name = “Rover&quot; ; $poppy->tag = new dogtag; $poppy->tag->words = “blah” ; …
  • 32. Deleting objects So far our objects have not been destroyed till the end of our scripts.. Like variables, it is possible to explicitly destroy an object using the unset () function.
  • 33. A copy, or not a copy.. Entire objects can be passed as arguments to functions, and can use all methods/variables within the function. Remember however.. like functions the object is COPIED when passed as an argument unless you specify the argument as a reference variable &$variable
  • 34. Why Object Orientate? Reason 1 Once you have your head round the concept of objects, intuitively named object orientated code becomes easy to understand . e.g. $order->display_basket(); $user->card[2]->pay($order); $order->display_status();
  • 35. Why Object Orientate? Reason 2 Existing code becomes easier to maintain. e.g. If you want to extend the capability of a piece of code, you can merely edit the class definitions…
  • 36. Why Object Orientate? Reason 3 New code becomes much quicker to write once you have a suitable class library. e.g. Need a new object..? Usually can extend an existing object. A lot of high quality code is distributed as classes (e.g. http:// pear.php.net ).
  • 37. There is a lot more… We have really only touched the edge of object orientated programming… http:// www.php.net/manual/en/language.oop.php … but I don’t want to confuse you too much!
  • 38. PHP4 vs. PHP5 OOP purists will tell you that the object support in PHP4 is sketchy. They are right, in that a lot of features are missing. PHP5 OOP system has had a big redesign and is much better. …but it is worth it to produce OOP code in either PHP4 or PHP5…