globe: OOP und clone

Beitrag lesen

n'abend,

Was passiert mit dem Clone wenn die Funktion endet?
Wird der automatisch zerstört?

da es nach dem Verlassen des Funktionsblock keine offene Referenz mehr auf das Objekt gibt, wird es zerstört, korret. Wie es den __construct() Konstruktor gibt, gibt es auch den __destruct() Destruktor, der analog zum Konstruktor aufgerufen wird, bevor das Objekt zerstört wird.

<?php  
  
class Demo  
{  
 public $var = null;  
  
 public function __construct( $var=null )  
 {  
  $this->var = $var;  
  echo "constructing »", $this->var, "«\n<br>";  
 }  
  
 public function in( $var )  
 {  
  $this->var = $var;  
  echo "setting »", $this->var, "«\n<br>";  
 }  
  
 public function out()  
 {  
  echo "printing »", $this->var, "«\n<br>";  
 }  
  
 public function __destruct()  
 {  
  echo "destroying »", $this->var ,"«\n<br>";  
 }  
  
}  
  
function clone_class( $c )  
{  
  $cc = clone $c;  
  
  $cc->in( 'foobar' );  
  
  $c->out();  
  $cc->out();  
}  
  
$c = new Demo( 'hello world' );  
$c->out();  
echo "--calling clone_class()\n<br>";  
clone_class( $c );  
echo "--finished clone_class()\n<br>";  
$c->out();  
  
  
?>

weiterhin schönen abend...

--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|