Static Class Member References

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux