On Wed, 2013-08-07 at 21:02 +0100, Stuart Dallas wrote:
> On 7 Aug 2013, at 20:45, "Brian Smither" <[email protected]> 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