Home >Backend Development >PHP Problem >What is the method to destroy objects in PHP

What is the method to destroy objects in PHP

青灯夜游
青灯夜游Original
2021-09-13 18:01:222880browse

Methods to destroy objects in PHP: 1. Assign NULL to the object variable with the syntax "$obj = null;"; 2. Use the unset() function to destroy the object with the syntax "unset($obj);".

What is the method to destroy objects in PHP

The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer

Destroy objects in PHP Method

Method 1: Assign NULL to the object variable

When the object is not referenced, it will be destroyed, so it can be assigned a value NULL

Example: There is such an object:

<?php
header("Content-type:text/html;charset=utf-8");
class Human {   
  public $name = &#39;张三&#39;;   
  public $gender = null;   
  public function __destruct() {   
      echo &#39;走了!<br />&#39;;   
  }   
}   
$obj = new Human();  
var_dump($obj);
?>

Output result:

What is the method to destroy objects in PHP

Assign NULL to the object variable $obj and destroy the object

$obj = null;
var_dump($obj);

Output result:

What is the method to destroy objects in PHP

Method 2: Use the unset() function to destroy the object

Example 1:

<?php
class Human {   
  public $name = &#39;张三&#39;;   
  public $gender = null;   
  public function __destruct() {   
      echo &#39;走了!<br />&#39;;   
  }   
}   
$a = new Human();   
$b = $c = $d = $a;  
unset($a);    
echo $b->name; //输出张三
echo &#39;<hr />&#39;; //先输出换行线再输出走了    析构函数是在线上触发还是线下触发?
?>

Answer:

$b = $c = $d = $a;By default, the four variables point to the same memory. When unset, the object remains It is used by the other three variables, so the object is not destroyed, so the destructor is triggered offline (the memory is automatically released after the code is executed)

What is the method to destroy objects in PHP

Example 2:

<?php
class Human { 
  public $name = &#39;张三&#39;; 
  public $gender = null; 
   
  public function __destruct() { 
      echo &#39;走了!<br />&#39;; 
  } 
} 
$e = $f = $g = new Human(); 
unset($e); 
unset($f); 
unset($g); 
echo &#39;<hr />&#39;; //同样的问题: 析构函数是在线上触发还是线下触发?
?>

Before the memory is automatically released after the code runs, the object is not referenced by any variable, so the memory is automatically released....The answer is to trigger it online

What is the method to destroy objects in PHP

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of What is the method to destroy objects in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn