Re: Class Auto-Assigning to Variable

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

 



On Wed, 2013-08-07 at 21:02 +0100, Stuart Dallas wrote:

> On 7 Aug 2013, at 20:45, "Brian Smither" <bhsmither@xxxxxxxxx> wrote:
> 
> >> I cannot replicate this.
> > 
> > I don't expect anyone to be able to replicate this behavior. The example shows an extraordinarily stripped-down sequence of statements that informs what should work, but do to some unknown agent, which, therefore, cannot be included in the example, produces unexpected output.
> > 
> > This conceptual example is not a 'sample' or 'excerpt' of the actual application. There is much, much more code. None of it is an apparent likely suspect in causing this behavior.
> > 
> > I am hoping for a, "Oh, yeah! I've seen that happen before. It's caused by..."
> > 
> > Let us focus on the central question:
> > 
> > Would there be a PHP function that would do [what the example describes] as a side-effect?
> 
> Yes:
> 
> $hello = $clsHello;
> 
> There are only a few variables that get assigned as side effects of functions, but they have very specific names, and none of them are $hello (but I'm guessing that's not the actual variable name) and none of them will assign a userland object. Somewhere in your code there is something that is assigning to $hello. Find everything that's doing that and look at each instance in detail.
> 
> -Stuart
> 
> -- 
> Stuart Dallas
> 3ft9 Ltd
> http://3ft9.com/
> 


As you've said that your excerpt doesn't replicate the problem, it's not
that useful really to accurately illustrate it. I would say for definite
that it's some of the surrounding code, probably something similar to
this:

class Hello
{
	private $_world = 'World';
	function __construct(){}
	
	function test()
	{
		$GLOBALS[strtolower(get_class($this))] = $this;
	}
}

$clsHello = new Hello();
$clsHello->test();

echo 'The variable $hello is
'.gettype($hello)."\n".print_r($hello,true);


There are probably many ways to achieve this, I can't think of a sane
reason for any of them though!

Thanks,
Ash
http://www.ashleysheridan.co.uk



[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