php classes and oops concept
of 35
/35
PHP Classes and Object Orientation
Embed Size (px)
DESCRIPTION
To find how to use OOPS Concept in PHP and the Class utilization in PHP latest versionTRANSCRIPT
- PHP Classes and Object Orientation
- Revision HIstory # Version Date Rationale for change Change Description 1 1.0 26-Feb-2008 Initial Version 2
- 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
- Agenda
- Introduction
- Function
- Class Definition
- Class Usage
- Constructor
- Inheritance
- PHP4 vs PHP5
- Reminder a function
- Reusable piece of code.
- Has its own local scope.
- function my_func($arg1,$arg2) {
- >
- }
- 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 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 class dog { Define the name of the class.
- Class Definition public $name; Define an object attribute (variable), the dogs name.
- Class Definition public function bark() { echo Woof! ; } Define an object action (function), the dogs bark.
- 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
- Class Usage require ( dog.class.php ); Include the class definition
- Class Usage $puppy = new dog(); Create a new instance of the class.
- Class Usage $puppy->name = Rover ; Set the name variable of this instance to Rover.
- Class Usage echo {$puppy->name} says ; Use the name variable of this instance in an echo statement..
- Class Usage $puppy->bark(); Use the dog object bark method.
- 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
- Constructor Example 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.
- 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 ($heighttype = 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 ($heighttype = 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 parents constructor is executed.
- If the child and parent does not have a constructor, the grandparent constructor is attempted
- etc.
- 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.
- There is a lot more
- We have really only touched the edge of object orientated programming
- But I dont 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
- Thank you