Static Class Member References

From: Date: Sun, 11 Jul 2010 22:19:25 +0000
Subject: Static Class Member References
Groups: php.general 
Request: Send a blank email to php-general+get-306827@lists.php.net to get a copy of this message
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 `

« previous php.general (#306827) next »