如何在PHP中销毁对象?

推荐答案1

用于销毁对象通常是unset()最适合"速度",但是,如果您想立即(以CPU为代价)回收内存. P> 就像其他提到的一样,设置为Null并不意味着所有内容都已回收,您可以拥有共享的内存(未串联)对象,以防止对象破坏对象.而且,就像其他人所说的那样,无论如何您都不能明确"销毁"对象,因此您不应该尝试做.最适合您.另外,您可以将__destruct()用于将在Unset或Null上调用的对象,但应仔细使用,并且像其他人所说的那样,切勿直接调用!

PHP unset()函数,将我们要删除为该函数的参数的对象,我们可以删除此对象.

这如下所示.

  1. unset($object1) 

因此,在上面的代码中,我们删除了一个名为$ object1的对象.

在下面的代码中,我们显示一个完整的示例删除对象.

  1. <?php  
  2.  
  3. class cars 
  4. { 
  5. public $type; 
  6. } 
  7.  
  8. $car1= new cars(); 
  9.  
  10. $car->type= "Hyundai Elantra"; 
  11.  
  12. unset($car1); 
  13.  
  14. ?> 

因此,在上面的代码中,我们创建了一个名为CARS的类.

内部其中,我们声明了一个名为$类型的属性.这将代表它是. >我们将$ car1对象分配为type,nyundai elantra.

然后,我们通过unset()function删除$ car1对象.

创建destructor方法

您还可以选择将destructor方法放在PHP类中.

<跨度>删除对象时,将自动调用destructor方法,并且您可以在任何方法中执行此代码中的任何操作.例如,您可以关闭数据库连接.输出该对象正在删除.如果您要跟踪类中的对象数量,则将变量保持计数减少1(因为在调用此方法时删除了一个对象).

这再次是可选的.您不必在代码中使用驱动器方法.但是,如果要在删除对象时要调用方法,则需要添加destructor方法,因为每当删除对象时,它都会称为. >我们通过unset()函数删除$ car4对象.

然后,我们输出类中现在为4的对象的数量,因为1已删除1.

因此,同样,在您的课程中使用驱动器方法是可选的.只有在删除对象时要完成某些操作.

这可以关闭数据基础连接,跟踪类中的对象数量输出等

推荐答案2

一个对象是 实例 类的对象.您可以使用 php unset() 函数删除对象.将我们要 delete 作为此函数的参数的对象,我们可以删除此对象.

用法态您还可以在php类中放置 destructor 方法以删除对象.

当对象已删除, destructor 方法是自动调用的,您可以像任何方法一样执行任何操作.

<跨度>用法 : -

  1. class sample { 
  2. public function __construct() { 
  3. /* Some code here */ 
  4. } 
  5. public function __destruct() { 
  6. /* Some operation, like closing the database connection */ 
  7. } 
  8. }