I found this awfully old comment in the [PHP docs comments](http://php.net/manual/en/language.references.unset.php#72945), but can't get my mind around it why it outputs "hihaha" and not "eita" in the first example. `$a` is changed and I'd assume that `"hihaha"` is removed for good. If not, then why is it so that if the change is to `null` or assigning a copy of another variable, then the `"hihaha"` IS removed for good?

```
// 1. example
$a = "hihaha";
$b = &$a;
$c = "eita";
$a = &$c; // why doesn't this purge "hihaha" from existence?
echo $b; // shows "hihaha" WHY?

// 2. example
$a = "hihaha";
$b = &$a;
$a = null;
echo $b; // shows nothing (both are set to null)

// 3. example
$a = "hihaha";
$b = &$a;
$c = "eita";
$a = $c;
echo $b; // shows "eita"

```

Is this a "good way" towards the circular references problem?