A class describes the shape of an object that code can create.

class definition A class can hold a small behavior, and the main script can create an object when it needs that behavior.

Class Blueprint

name
class_blueprint.php
Replay: real traced execution (multi-file project)
<?php
class Greeter
{
    public function message(string $name): string
    {
        return "Hello, " . $name;
    }
}

$name = "Ada";
$message = (new Greeter())->message($name);

echo "name=" . $name . "\n";
echo "message=" . $message . "\n";
<?php
class Greeter
{
    public function message(string $name): string
    {
        return "Hello, " . $name;
    }
}

$name = "Grace";
$message = (new Greeter())->message($name);

echo "name=" . $name . "\n";
echo "message=" . $message . "\n";
<?php
class Greeter
{
    public function message(string $name): string
    {
        return "Hello, " . $name;
    }
}

$name = "Rasmus";
$message = (new Greeter())->message($name);

echo "name=" . $name . "\n";
echo "message=" . $message . "\n";
  1. $name ← Ada

    10$name→ Ada = "Ada"; //@name="Grace", "Rasmus"11$message = (new Greeter())->message($nameAda);
  2. public function message(string $name): string

    3{4    public function message(string $nameAda): string5    {6        return "Hello, " . $nameAda;7    }
  3. $message ← Hello, Ada

    10$name = "Ada"; //@name="Grace", "Rasmus"11$message→ Hello, Ada = (new Greeter())->message($nameAda);1213echo "name=" . $nameAda . "\n";14echo "message=" . $messageHello, Ada . "\n";
    outputname=Ada
    message=Hello, Ada
  1. $name ← Grace

    10$name→ Grace = "Grace";11$message = (new Greeter())->message($nameGrace);
  2. public function message(string $name): string

    3{4    public function message(string $nameGrace): string5    {6        return "Hello, " . $nameGrace;7    }
  3. $message ← Hello, Grace

    10$name = "Grace";11$message→ Hello, Grace = (new Greeter())->message($nameGrace);1213echo "name=" . $nameGrace . "\n";14echo "message=" . $messageHello, Grace . "\n";
    outputname=Grace
    message=Hello, Grace
  1. $name ← Rasmus

    10$name→ Rasmus = "Rasmus";11$message = (new Greeter())->message($nameRasmus);
  2. public function message(string $name): string

    3{4    public function message(string $nameRasmus): string5    {6        return "Hello, " . $nameRasmus;7    }
  3. $message ← Hello, Rasmus

    10$name = "Rasmus";11$message→ Hello, Rasmus = (new Greeter())->message($nameRasmus);1213echo "name=" . $nameRasmus . "\n";14echo "message=" . $messageHello, Rasmus . "\n";
    outputname=Rasmus
    message=Hello, Rasmus