Question

I am just exploring how Symbol Tables and Variable Containers work together with references. And I found out that

<?php    
   $a = & $b;    
?>

doesn't throw a Notice saying "Undefined variable: b in...", while

<?php    
   $a = $b;    
?>

does.

Why?

Was it helpful?

Solution

From the manual: http://php.net/manual/en/language.references.whatdo.php

Note: If you assign, pass, or return an undefined variable by reference, it will get created.

As to why, I would just be speculating that php allocates the memory and assigns $a and $b to both look at that spot in memory. It is a documented behavior though.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top