PHP Classes and OOPS Concept

43,622 views

Published on

To find how to use OOPS Concept in PHP and the Class utilization in PHP latest version

Published in: Technology, Lifestyle

PHP Classes and OOPS Concept

  1. 1. PHP Classes and Object Orientation
  2. 2. Revision HIstory # Version Date Rationale for change Change Description 1 1.0 26-Feb-2008 Initial Version 2
  3. 3. Revision HIstory Document Name Training Material Document Code QMS-TEM-OT 08 Version 1.0 Date 26-Feb-2008 Created By Ms. Padmavathy Reviewed BY SPG Approved By Mr. Vijay
  4. 4. Agenda <ul><li>Introduction </li></ul><ul><li>Function </li></ul><ul><li>Class Definition </li></ul><ul><li>Class Usage </li></ul><ul><li>Constructor </li></ul><ul><li>Inheritance </li></ul><ul><li>PHP4 vs PHP5 </li></ul>
  5. 5. Reminder… a function <ul><li>Reusable piece of code. </li></ul><ul><li>Has its own ‘local scope’. </li></ul><ul><li>function my_func($arg1,$arg2) { </li></ul><ul><li><< function statements >> </li></ul><ul><li>} </li></ul>
  6. 6. Conceptually, what does a function represent? … give the function something (arguments), it does something with them, and then returns a result… Action or Method
  7. 7. What is a class ? Conceptually, a class represents an object , with associated methods and variables
  8. 8. 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.
  9. 9. Class Definition <?php class dog { public $name; public function bark() { echo ‘Woof!’ ; } } ?> class dog { Define the name of the class.
  10. 10. Class Definition <?php class dog { public $name; public function bark() { echo ‘Woof!’ ; } } ?> public $name; Define an object attribute (variable), the dog’s name.
  11. 11. Class Definition <?php class dog { public $name; public function bark() { echo ‘Woof!’ ; } } ?> public function bark() { echo ‘Woof!’ ; } Define an object action (function), the dog’s bark.
  12. 12. 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…
  13. 13. Class Usage <?php require ( ‘dog.class.php’ ); $puppy = new dog(); $puppy->name = ‘Rover’ ; echo “ {$puppy->name} says ” ; $puppy->bark(); ?>
  14. 14. 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
  15. 15. 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.
  16. 16. 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’.
  17. 17. 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..
  18. 18. 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.
  19. 19. 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’ ;
  20. 20. Using attributes within the class.. <ul><li>If you need to use the class variables within any class actions, use the special variable $this in the definition: </li></ul><ul><li>class dog { </li></ul><ul><li> public $name; </li></ul><ul><li> public function bark() { </li></ul><ul><li> echo $this->name. ‘ says Woof!’ ; } </li></ul><ul><li>} </li></ul>
  21. 21. Constructor methods <ul><li>A constructor method is a function that is automatically executed when the class is first instantiated. </li></ul><ul><li>Create a constructor by including a function within the class definition with the __construct name . </li></ul><ul><li>Remember.. if the constructor requires arguments, they must be passed when it is instantiated! </li></ul>
  22. 22. Constructor Example <?php class dog { public $name; public function __construct ($nametext) { $this->name = $nametext; } public function bark() { echo ‘Woof!’; } } ?>
  23. 23. Constructor Example <?php … $puppy = new dog( ‘Rover’ ); … ?> Constructor arguments are passed during the instantiation of the object.
  24. 24. Class Scope <ul><li>Like functions, each instantiated object has its own local scope. </li></ul><ul><li>e.g. if 2 different dog objects are instantiated, $puppy1 and $puppy2 , the two dog names $puppy1->name and $puppy2->name are entirely independent.. </li></ul>
  25. 25. Inheritance <ul><li>The real power of using classes is the property of inheritance – creating a hierarchy of interlinked classes. </li></ul>dog poodle alsatian parent children
  26. 26. Inheritance <ul><li>The child classes ‘inherit’ all the methods and variables of the parent class, and can add extra ones of their own. </li></ul><ul><li>e.g. the child classes poodle inherits the variable ‘name’ and method ‘bark’ from the dog class, and can add extra ones… </li></ul>
  27. 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’ ; } } }
  28. 28. 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…
  29. 29. 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(); …
  30. 30. … a poodle will always ‘Yip!’ <ul><li>It is possible to over-ride a parent method with a new method if it is given the same name in the child class.. </li></ul><ul><li>class poodle extends dog { </li></ul><ul><li>… </li></ul><ul><li>public function bark() { </li></ul><ul><li>echo ‘Yip!’; </li></ul><ul><li>} </li></ul><ul><li>… </li></ul><ul><li>} </li></ul>
  31. 31. Child Constructors? <ul><li>If the child class possesses a constructor function, it is executed and any parent constructor is ignored . </li></ul><ul><li>If the child class does not have a constructor, the parent’s constructor is executed. </li></ul><ul><li>If the child and parent does not have a constructor, the grandparent constructor is attempted… </li></ul><ul><li>… etc. </li></ul>
  32. 32. Deleting objects <ul><li>So far our objects have not been destroyed till the end of our scripts.. </li></ul><ul><li>Like variables, it is possible to explicitly destroy an object using the unset () function. </li></ul>
  33. 33. There is a lot more… <ul><li>We have really only touched the edge of object orientated programming… </li></ul><ul><li>But I don’t want to confuse you too much! </li></ul>
  34. 34. PHP4 vs. PHP5 <ul><li>OOP purists will tell you that the object support in PHP4 is sketchy. They are right, in that a lot of features are missing. </li></ul><ul><li>PHP5 OOP system has had a big redesign and is much better. </li></ul><ul><li>… but it is worth it to produce OOP </li></ul><ul><li>code in either PHP4 or PHP5… </li></ul>
  35. 35. Thank you

×