This site is mobile accessible. Press the "Tap Here" button to use a different font-size.


Smartphone icons created by Freepik - Flaticon

7.2 PHP Classes/Objects

  • A class is a template for objects, and an object is an instance of class.

    OOP Case

    • Let's assume we have a class named Fruit. A Fruit can have properties like name, color, weight, etc. We can define variables like $name, $color, and $weight to hold the values of these properties.
    • When the individual objects (apple, banana, etc.) are created, they inherit all the properties and behaviors from the class, but each object will have different values for the properties.

    Define a Class

    A class is defined by using the class keyword, followed by the name of the class and a pair of curly braces ({}). All its properties and methods go inside the braces:

    Syntax

    <?php
    class Fruit {
      // code goes here...
    }
    ?>

    Below we declare a class named Fruit consisting of two properties ($name and $color) and two methods set_name() and get_name() for setting and getting the $name property:

    Example 1: PHP Classes/Objects - Define a Class
    <?php
    class Fruit {
      // Properties
      public $name;
      public $color;
    
      // Methods
      function set_name($name) {
        $this->name = $name;
      }
      function get_name() {
        return $this->name;
      }
    }
    ?>

    Define Objects

    • Classes are nothing without objects! We can create multiple objects from a class. Each object has all the properties and methods defined in the class, but they will have different property values.
    • Objects of a class is created using the new keyword.
    • In the example below, $apple and $banana are instances of the class Fruit:
    Example 2: PHP Classes/Objects - Define Objects
    <?php
    class Fruit {
      // Properties
      public $name;
      public $color;
    
      // Methods
      function set_name($name) {
        $this->name = $name;
      }
      function get_name() {
        return $this->name;
      }
    }
    
    $apple = new Fruit();
    $banana = new Fruit();
    $apple->set_name('Apple');
    $banana->set_name('Banana');
    
    echo $apple->get_name();
    echo "<br>";
    echo $banana->get_name();
    ?>

    In the example below, we add two more methods to class Fruit, for setting and getting the $color property:

    Example 3: PHP Classes/Objects - Define Objects part 2
    <?php
    class Fruit {
      // Properties
      public $name;
      public $color;
    
      // Methods
      function set_name($name) {
        $this->name = $name;
      }
      function get_name() {
        return $this->name;
      }
      function set_color($color) {
        $this->color = $color;
      }
      function get_color() {
        return $this->color;
      }
    }
    
    $apple = new Fruit();
    $apple->set_name('Apple');
    $apple->set_color('Red');
    echo "Name: " . $apple->get_name();
    echo "<br>";
    echo "Color: " . $apple->get_color();
    ?>

    PHP - The $this Keyword

    • The $this keyword refers to the current object, and is only available inside methods.
    • Look at the following example:

    Example

    <?php
    class Fruit {
      public $name;
    }
    $apple = new Fruit();
    ?>
    • So, where can we change the value of the $name property? There are two ways:
    • 1. Inside the class (by adding a set_name() method and use $this):
    Example 4: PHP Classes/Objects - The $this Keyword part 1
    <?php
    class Fruit {
      public $name;
      function set_name($name) {
        $this->name = $name;
      }
    }
    $apple = new Fruit();
    $apple->set_name("Apple");
    ?>

    2. Outside the class (by directly changing the property value):

    Example 5:PHP Classes/Objects - The $this Keyword part 2
    <?php
    class Fruit {
      public $name;
    }
    $apple = new Fruit();
    $apple->name = "Apple";
    ?>

    PHP - instanceof

    You can use the instanceof keyword to check if an object belongs to a specific class:

    Example 6: PHP Classes/Objects - instanceof
    <!DOCTYPE html>
    <html>
    <body>
    
    <?php
    class Fruit {
      // Properties
      public $name;
      public $color;
    
      // Methods
      function set_name($name) {
        $this->name = $name;
      }
      function get_name() {
        return $this->name;
      }
    }
    
    $apple = new Fruit();
    var_dump($apple instanceof Fruit);
    ?>
     
    </body>
    </html>
    Navigate this module

    Eventually the navigation links, above, will be replaced by these << (previous) and >> (next) buttons below.



    Animated PHP icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon

    Module 6 quiz