Hello PHPers,
I'm having some trouble understanding some PHP behaviour. The following
example script exhibits the behaviour which I cannot understand.
[code]
<?php
class A
{
public static $a = 3;
function __construct()
{
//self::$a = $this; //[i]
self::$a =& $this; //[ii]
}
}
class B extends A
{
function __construct()
{
parent::__construct();
}
}
class C {
var $c;
function __construct()
{
$this->c =& A::$a;
}
}
$c = new C;
$b = new B;
$cee = new C;
var_dump($c->c); // [i] prints object(B), but [ii] prints int 3
var_dump($cee->c); // [i] prints object(B), and [ii] prints object(B)
?>
[/code]
Why does $c->c print 'int 3' ?
I'm nervous to use "self::$a = $this;" because I don't want to be
copying the whole object. However, isn't $this just a reference to the
object, so "self::$a = $this;" is just copying the reference and not the
actual object, right?
Thanks in advance
`
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php