ошибка в документации?

AndreyA

Новичок
ошибка в документации?

В документации, на странице ( http://www.php.net/manual/en/language.oop5.basic.php ) есть пример 4:

Example #4 Object Assignment
PHP:
<?php
$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);
?>
The above example will output:
NULL
NULL
object(SimpleClass)#1 (1) {
["var"]=>
string(30) "$assigned will have this value"
}
Так вот у меня этот пример почему-то выдаёт
NULL
NULL
NULL

В документации ошибка?
 

tony2001

TeaM PHPClub
Предполагается, что этот пример - продолжение предыдущего, где $instance = = new SimpleClass();
Но я согласен, это не очевидно. Сейчас исправлю.
 

AndreyA

Новичок
Автор оригинала: tony2001
Предполагается, что этот пример - продолжение предыдущего, где $instance = = new SimpleClass();
Но я согласен, это не очевидно. Сейчас исправлю.
Да, в таком виде работает:
PHP:
$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);
Я правильно понимаю, что в строке
PHP:
$instance = null;
происходит разыменование $instance?
то есть вместо:
$reference >>(reference to)>> $instance >>(reference to)>> instance of SimpleClass <<(reference to)<< $assigned
становится:
$reference >>(reference to)>> $instance = null
$assigned >>(reference to)>> instance of SimpleClass
 

Adelf

Administrator
Команда форума
$reference >>(reference to)>> $instance >>(reference to)>> instance of SimpleClass <<(reference to)<< $assigned
Ох как отлично нарисовано. Понятно. Вот такие бы вещи в книги, которые я когдато читал.

AndreyA
Да, все так.
 
Сверху