Bird
Raised Fist0
PHPprogramming~10 mins

__toString for string representation in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define the __toString method that returns the name property.

PHP
<?php
class Person {
    private $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function [1]() {
        return $this->name;
    }
}

$person = new Person("Alice");
echo $person;
?>
Drag options to blanks, or click blank then click option'
AtoString
B__toStr
C__toString
D__string
Attempts:
3 left
💡 Hint
Common Mistakes
Using toString without underscores
Misspelling the method name
Using __string instead of __toString
2fill in blank
medium

Complete the code to return a formatted string with the person's name and age in the __toString method.

PHP
<?php
class Person {
    private $name;
    private $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function __toString() {
        return [1];
    }
}

$person = new Person("Bob", 30);
echo $person;
?>
Drag options to blanks, or click blank then click option'
A"Person: $name, $age"
B"Name: $this->name, Age: $this->age"
C"$this->name is $this->age years old"
D"Name: name, Age: age"
Attempts:
3 left
💡 Hint
Common Mistakes
Using variables without $this->
Using undefined variables
Not returning a string
3fill in blank
hard

Fix the error in the __toString method to correctly return the full name.

PHP
<?php
class User {
    private $firstName;
    private $lastName;

    public function __construct($firstName, $lastName) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public function __toString() {
        return $this->firstName[1]$this->lastName;
    }
}

$user = new User("John", "Doe");
echo $user;
?>
Drag options to blanks, or click blank then click option'
A.
B,
C+
D-
Attempts:
3 left
💡 Hint
Common Mistakes
Using + for string concatenation
Using comma instead of dot
Using dash instead of dot
4fill in blank
hard

Fill both blanks to create a __toString method that returns the user's full name with a space between first and last names.

PHP
<?php
class Member {
    private $firstName;
    private $lastName;

    public function __construct($firstName, $lastName) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public function __toString() {
        return $this->firstName[1][2]$this->lastName;
    }
}

$member = new Member("Jane", "Smith");
echo $member;
?>
Drag options to blanks, or click blank then click option'
A.
B+
C" "
D,
Attempts:
3 left
💡 Hint
Common Mistakes
Using + instead of . for concatenation
Not adding a space between names
Using comma instead of space string
5fill in blank
hard

Fill all three blanks to create a __toString method that returns a formatted string with the user's full name and email.

PHP
<?php
class Contact {
    private $firstName;
    private $lastName;
    private $email;

    public function __construct($firstName, $lastName, $email) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
        $this->email = $email;
    }

    public function __toString() {
        return [1] . [2] . [3];
    }
}

$contact = new Contact("Emily", "Jones", "emily@example.com");
echo $contact;
?>
Drag options to blanks, or click blank then click option'
A"Name: " . $this->firstName . " " . $this->lastName
B"Email: " . $this->email
C" - "
D"Name: "
Attempts:
3 left
💡 Hint
Common Mistakes
Not concatenating strings properly
Missing spaces or separators
Using + instead of . for concatenation

Practice

(1/5)
1.

What is the main purpose of the __toString method in a PHP class?

easy
A. To initialize object properties
B. To define how an object is converted to a string automatically
C. To handle errors in the class
D. To create a new instance of the class

Solution

  1. Step 1: Understand the role of __toString

    The __toString method is a special function in PHP that defines how an object should be represented as a string.
  2. Step 2: Identify its automatic use

    This method is called automatically when you try to print or convert an object to a string.
  3. Final Answer:

    To define how an object is converted to a string automatically -> Option B
  4. Quick Check:

    __toString controls string conversion [OK]
Hint: Remember: __toString controls object-to-string conversion [OK]
Common Mistakes:
  • Confusing __toString with constructor
  • Thinking it handles errors
  • Assuming it creates new objects
2.

Which of the following is the correct syntax to declare the __toString method inside a PHP class?

class Example {
    ?
}
easy
A. public function __toString() : string { return "Example"; }
B. function toString() { return "Example"; }
C. public function __toString() { echo "Example"; }
D. private function __toString() : int { return 1; }

Solution

  1. Step 1: Check method name and visibility

    The method must be named exactly __toString and usually declared public.
  2. Step 2: Verify return type and return value

    It must return a string, so the return type : string is correct, and the return value must be a string.
  3. Final Answer:

    public function __toString() : string { return "Example"; } -> Option A
  4. Quick Check:

    Correct syntax includes public, __toString, returns string [OK]
Hint: Use public function __toString() returning a string [OK]
Common Mistakes:
  • Omitting public visibility
  • Using wrong method name like toString
  • Returning non-string values
  • Using echo instead of return
3.

What will be the output of the following PHP code?

class Person {
    private string $name;
    public function __construct(string $name) {
        $this->name = $name;
    }
    public function __toString() : string {
        return "Person: " . $this->name;
    }
}

$p = new Person("Alice");
echo $p;
medium
A. Error: Cannot convert object to string
B. Object of class Person
C. Person: Alice
D. Alice

Solution

  1. Step 1: Understand the __toString method

    The __toString method returns the string "Person: " concatenated with the name property.
  2. Step 2: Check the echo statement

    When echoing the object, PHP calls __toString automatically, so it prints the returned string.
  3. Final Answer:

    Person: Alice -> Option C
  4. Quick Check:

    echo object calls __toString, prints combined string [OK]
Hint: echo object calls __toString, prints returned string [OK]
Common Mistakes:
  • Expecting default object print
  • Forgetting __toString is called automatically
  • Confusing property access with direct print
4.

Identify the error in the following PHP class that implements __toString:

class Product {
    private string $name;
    public function __construct(string $name) {
        $this->name = $name;
    }
    public function __toString() {
        echo $this->name;
    }
}

$p = new Product("Book");
echo $p;
medium
A. The __toString method should return a string, not echo it
B. The constructor is missing a return type
C. The property $name should be public
D. The echo statement outside the class is incorrect

Solution

  1. Step 1: Check __toString method implementation

    The __toString method must return a string, but here it uses echo which outputs directly and returns nothing.
  2. Step 2: Understand consequences of echo inside __toString

    Using echo causes a fatal error because PHP expects a string return from __toString.
  3. Final Answer:

    The __toString method should return a string, not echo it -> Option A
  4. Quick Check:

    __toString must return string, not echo [OK]
Hint: Always return string in __toString, never echo [OK]
Common Mistakes:
  • Using echo instead of return in __toString
  • Ignoring return type requirements
  • Assuming echo works inside __toString
5.

You want to create a PHP class Book that stores a title and author. When printing the object, it should show "Title by Author". Which implementation of __toString correctly achieves this?

class Book {
    private string $title;
    private string $author;
    public function __construct(string $title, string $author) {
        $this->title = $title;
        $this->author = $author;
    }
    public function __toString() : string {
        ?
    }
}
hard
A. return '$this->title by $this->author';
B. echo "$this->title by $this->author";
C. return $this->title + ' by ' + $this->author;
D. return $this->title . ' by ' . $this->author;

Solution

  1. Step 1: Understand string concatenation in PHP

    PHP uses the dot operator . to join strings, not plus +.
  2. Step 2: Check return vs echo

    The __toString method must return a string, so return is correct, not echo.
  3. Step 3: Choose correct concatenation and return

    return $this->title . ' by ' . $this->author; correctly returns the concatenated string using dots.
  4. Final Answer:

    return $this->title . ' by ' . $this->author; -> Option D
  5. Quick Check:

    Use return with dot concatenation in __toString [OK]
Hint: Use return and dot (.) to join strings in __toString [OK]
Common Mistakes:
  • Using echo instead of return
  • Using + for string concatenation
  • Forgetting to return a string
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard