Copy code The code is as follows:
class SimpleClass{
public $var = 'a default value ';
public function displayVar() {
echo $this->var;
}
}
$instance = new SimpleClass();
$assigned = $instance;
$reference =& $instance;
$instance->var = '$assigned will have this value';
$instance = null; // $instance and $reference become null var_dump($instance );var_dump($reference);var_dump($assigned);
var_dump($instance);
var_dump($assigned);
var_dump($reference);
?>
php5 rewrites the bottom layer of OOP. When a class generates an instance (object), the return value $instance is not the object itself, but just an id (or resource handle) of the object. Therefore, when $instance is assigned to $assigned, $assigned also points to This object is a bit like the reference (&) operation of an ordinary variable. Therefore, when $instance is initialized, $assigned is also initialized. However, when $instance is destroyed (=null), because the corresponding object still has a handle ($assigned), the object will not be destroyed and the destructor will not be triggered. As a result, var_dump($assigned) is the value of the object, and $instance is already an empty handle, showing null. Because $reference has a reference relationship similar to that of ordinary variables with $instance, it also becomes an empty handle and displays null.
http://www.bkjia.com/PHPjc/324059.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/324059.htmlTechArticleCopy the code as follows: ?php class SimpleClass{ public $var = 'a default value'; public function displayVar( ) { echo $this-var; } } $instance = new SimpleClass(); $assigned = $i...