Bird
Raised Fist0
PHPprogramming~5 mins

Destructor method in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a destructor method in PHP?
A destructor method is a special function in a PHP class that runs automatically when an object is destroyed or goes out of scope. It is used to clean up resources like closing files or database connections.
Click to reveal answer
beginner
How do you name a destructor method in PHP?
In PHP, the destructor method is named __destruct() with two underscores at the start. It does not take any parameters.
Click to reveal answer
beginner
When is the destructor method called in PHP?
The destructor method is called automatically when the object is no longer needed, such as when the script ends, the object is unset, or it goes out of scope.
Click to reveal answer
beginner
What is a common use case for a destructor method?
A common use case is to release resources like closing database connections, freeing memory, or saving data before the object is destroyed.
Click to reveal answer
beginner
Write a simple PHP class with a destructor that prints a message when the object is destroyed.
Example:<br><pre>&lt;?php
class MyClass {
  public function __destruct() {
    echo "Object destroyed!";
  }
}
$obj = new MyClass();
// When script ends or object is unset, it prints: Object destroyed!
?&gt;</pre>
Click to reveal answer
What is the correct name of the destructor method in PHP?
A__destruct()
Bdestruct()
C__destroy()
Ddelete()
When is the destructor method called automatically?
AWhen a method is called
BWhen the object is created
CWhen the object is destroyed or goes out of scope
DWhen a variable is assigned
Which of these is a common use for a destructor?
ACreating a new object
BReading user input
CStarting a session
DClosing a database connection
Can the destructor method take parameters in PHP?
ANo, it cannot take parameters
BYes, it can take any number of parameters
CYes, but only one parameter
DOnly optional parameters
What happens if you unset an object in PHP?
AThe object is copied
BThe destructor method is called
CNothing happens
DThe constructor method is called
Explain what a destructor method is and when it is used in PHP.
Think about what happens when an object is no longer needed.
You got /4 concepts.
    Write a simple PHP class with a destructor that outputs a message when the object is destroyed.
    Use __destruct() and echo inside it.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the purpose of the __destruct method in a PHP class?
      easy
      A. To clean up resources when an object is destroyed
      B. To initialize object properties when created
      C. To define a class constant
      D. To handle user input validation

      Solution

      1. Step 1: Understand the role of __destruct

        The __destruct method is called automatically when an object is destroyed or goes out of scope.
      2. Step 2: Identify its purpose

        It is used to clean up resources like closing files or database connections safely.
      3. Final Answer:

        To clean up resources when an object is destroyed -> Option A
      4. Quick Check:

        Destructor method = cleanup on object destruction [OK]
      Hint: Destructor cleans up when object is removed from memory [OK]
      Common Mistakes:
      • Confusing __destruct with __construct
      • Thinking it initializes objects
      • Using it to handle input validation
      2. Which of the following is the correct syntax to declare a destructor method in PHP?
      easy
      A. function __destruct() {}
      B. function destruct() {}
      C. function _destruct() {}
      D. function __destroy() {}

      Solution

      1. Step 1: Recall PHP destructor naming

        PHP destructor methods must be named exactly __destruct with two underscores.
      2. Step 2: Check syntax correctness

        The correct syntax is function __destruct() {}. Other options have incorrect names.
      3. Final Answer:

        function __destruct() {} -> Option A
      4. Quick Check:

        Destructor syntax = __destruct() [OK]
      Hint: Destructor always starts with double underscores __destruct [OK]
      Common Mistakes:
      • Using single underscore or wrong method name
      • Omitting parentheses in method declaration
      • Confusing with __construct method
      3. What will be the output of the following PHP code?
      class Test {
        function __construct() {
          echo "Constructed\n";
        }
        function __destruct() {
          echo "Destructed\n";
        }
      }
      $obj = new Test();
      echo "Hello\n";
      unset($obj);
      medium
      A. Constructed\nDestructed\nHello\n
      B. Hello\nConstructed\nDestructed\n
      C. Destructed\nConstructed\nHello\n
      D. Constructed\nHello\nDestructed\n

      Solution

      1. Step 1: Trace object creation and constructor call

        When $obj = new Test(); runs, __construct() prints "Constructed\n".
      2. Step 2: Print "Hello" and then unset object

        Next, "Hello\n" is printed. Then unset($obj); destroys the object, triggering __destruct() which prints "Destructed\n".
      3. Final Answer:

        Constructed\nHello\nDestructed\n -> Option D
      4. Quick Check:

        Constructor then echo then destructor [OK]
      Hint: Destructor runs when object is unset or script ends [OK]
      Common Mistakes:
      • Assuming destructor runs before echo
      • Confusing order of constructor and destructor
      • Missing that unset triggers destructor immediately
      4. Identify the error in this PHP class related to the destructor method:
      class Sample {
        function __destruct {
          echo "Cleaning up";
        }
      }
      medium
      A. Destructor must be static
      B. Destructor name should be __destroy
      C. Missing parentheses in destructor declaration
      D. Destructor cannot echo text

      Solution

      1. Step 1: Check destructor method syntax

        The destructor method must include parentheses even if it has no parameters: function __destruct() {}.
      2. Step 2: Identify the missing parentheses error

        The code misses parentheses after __destruct, causing a syntax error.
      3. Final Answer:

        Missing parentheses in destructor declaration -> Option C
      4. Quick Check:

        Destructor needs () after name [OK]
      Hint: Always add () after __destruct method name [OK]
      Common Mistakes:
      • Omitting parentheses in method declaration
      • Using wrong destructor name
      • Thinking destructor must be static
      5. You want to ensure a file is always closed when your PHP object is destroyed. Which code snippet correctly uses a destructor to do this?
      class FileHandler {
        private $file;
        function __construct($filename) {
          $this->file = fopen($filename, 'w');
        }
        // What goes here?
      }
      hard
      A. function __destruct() { open($this->file); }
      B. function __destruct() { fclose($this->file); }
      C. function __destruct() { fclose($filename); }
      D. function __destruct() { $this->file = null; }

      Solution

      1. Step 1: Understand resource cleanup in destructor

        The destructor should close the file resource held in $this->file using fclose().
      2. Step 2: Check each option for correctness

        function __destruct() { fclose($this->file); } correctly calls fclose($this->file);. function __destruct() { open($this->file); } tries to open instead of close. function __destruct() { fclose($filename); } uses undefined $filename. function __destruct() { $this->file = null; } just sets property to null without closing.
      3. Final Answer:

        function __destruct() { fclose($this->file); } -> Option B
      4. Quick Check:

        Destructor closes file resource properly [OK]
      Hint: Destructor should close resources like files with fclose() [OK]
      Common Mistakes:
      • Calling wrong function like open() instead of fclose()
      • Using undefined variables inside destructor
      • Not actually closing the resource, just nullifying
      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