In PHP, classes and objects are the building blocks of object-oriented programming (OOP). Classes serve as blueprints for creating objects, while objects are instances of classes.
This tutorial covers:
Table of Contents
1. Basics of Classes and Objects
A class is a blueprint that defines properties and methods. An object is an instance of that class.
Example: Basic Class and Object
<?php class Car { // Properties public $brand; public $color; // Method public function drive() { echo "The car is driving.\n"; } } // Create an object $myCar = new Car(); $myCar->brand = "Toyota"; $myCar->color = "Red"; echo "Brand: " . $myCar->brand . "\n"; echo "Color: " . $myCar->color . "\n"; $myCar->drive(); ?>
Output:
Brand: Toyota Color: Red The car is driving.
2. Constructors and Destructors
A constructor initializes an object when it is created, and a destructor performs cleanup tasks.
Example: Using Constructor and Destructor
<?php class Person { public $name; // Constructor public function __construct($name) { $this->name = $name; echo "Hello, $name!\n"; } // Destructor public function __destruct() { echo "Goodbye, $this->name!\n"; } } // Create an object $person = new Person("John"); ?>
Output:
Hello, John! Goodbye, John!
3. Properties and Methods
Properties store object data, and methods define actions.
Example: Defining Properties and Methods
<?php class Circle { public $radius; public function __construct($radius) { $this->radius = $radius; } public function calculateArea() { return pi() * pow($this->radius, 2); } } $circle = new Circle(5); echo "Area: " . $circle->calculateArea() . "\n"; ?>
Output:
Area: 78.53981633974483
4. Access Modifiers (public, protected, private)
Access modifiers define the visibility of properties and methods.
Example: Access Modifiers
<?php class BankAccount { private $balance; public function __construct($balance) { $this->balance = $balance; } public function deposit($amount) { $this->balance += $amount; } public function getBalance() { return $this->balance; } } $account = new BankAccount(1000); $account->deposit(500); echo "Balance: " . $account->getBalance() . "\n"; ?>
Output:
Balance: 1500
5. Static Properties and Methods
Static members belong to the class itself and are accessed without creating an object.
Example: Static Members
<?php class Math { public static $pi = 3.14159; public static function square($number) { return $number * $number; } } echo "Pi: " . Math::$pi . "\n"; echo "Square of 5: " . Math::square(5) . "\n"; ?>
Output:
Pi: 3.14159 Square of 5: 25
6. Inheritance
Inheritance allows a class to derive properties and methods from another class.
Example: Inheritance
<?php class Animal { public function eat() { echo "This animal is eating.\n"; } } class Dog extends Animal { public function bark() { echo "The dog is barking.\n"; } } $dog = new Dog(); $dog->eat(); $dog->bark(); ?>
Output:
This animal is eating. The dog is barking.
7. Polymorphism and Method Overriding
Polymorphism allows overriding methods in derived classes.
Example: Method Overriding
<?php class Shape { public function draw() { echo "Drawing a shape.\n"; } } class Circle extends Shape { public function draw() { echo "Drawing a circle.\n"; } } class Square extends Shape { public function draw() { echo "Drawing a square.\n"; } } $shapes = [new Circle(), new Square(), new Shape()]; foreach ($shapes as $shape) { $shape->draw(); } ?>
Output:
Drawing a circle. Drawing a square. Drawing a shape.
8. Practical Examples
Example 1: User Management System
<?php class User { public $username; public $email; public function __construct($username, $email) { $this->username = $username; $this->email = $email; } public function displayInfo() { echo "Username: $this->username, Email: $this->email\n"; } } $user = new User("johndoe", "john@example.com"); $user->displayInfo(); ?>
Output:
Username: johndoe, Email: john@example.com
Example 2: Shopping Cart
<?php class Cart { private $items = []; public function addItem($item) { $this->items[] = $item; } public function displayItems() { foreach ($this->items as $item) { echo $item . "\n"; } } } $cart = new Cart(); $cart->addItem("Apple"); $cart->addItem("Banana"); $cart->displayItems(); ?>
Output:
Apple Banana
Example 3: Student Grades System
<?php class Student { public $name; private $grades = []; public function __construct($name) { $this->name = $name; } public function addGrade($grade) { $this->grades[] = $grade; } public function calculateAverage() { $total = array_sum($this->grades); return $total / count($this->grades); } } $student = new Student("Alice"); $student->addGrade(90); $student->addGrade(85); $student->addGrade(88); echo "Average grade for {$student->name}: " . $student->calculateAverage() . "\n"; ?>
Output:
Average grade for Alice: 87.666666666667
Summary
This tutorial introduced the concepts of classes and objects in PHP, covering:
- Basics of defining and using classes and objects.
- Constructors and destructors for object initialization and cleanup.
- Access modifiers for encapsulation.
- Static properties and methods for shared data and functionality.
- Inheritance and polymorphism for reusable and extendable code.
- Practical examples for real-world applications.