You could check if a variable in $this exists:

class A
{
    var $bla;

    function Go()
    {
        switch(isset($this->bla))
        {
            case true: echo 'Called Dynamicaly<br />'; break;
            case true: echo 'Called Statically<br />'; break;
        }
    }
}

Or, if that doesn't work, you could do this:

class A
{
    var $dynamic = true;

    function Go()
    {
        switch(isset($this->bla) && $this->bla == true)
        {
            case true: echo 'Called Dynamicaly<br />'; break;
            case true: echo 'Called Statically<br />'; break;
        }
    }
}

Or:

class A
{
    var $dynamic;

    function A()
    {
        $this->dynamic = true;
    }

    function Go()
    {
        switch(isset($this->bla) && $this->bla == true)
        {
            case true: echo 'Called Dynamicaly<br />'; break;
            case true: echo 'Called Statically<br />'; break;
        }
    }
}

Just some things you could try.

"Sean Malloy" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> Consider the following code...
>
> class A
> {
>   function Go()
>   {
>     switch (isset($this))
>     {
>       case true: echo 'Called Dynamically<br />'; break;
>       case false: echo 'Called Statically<br />'; break;
>     }
>   }
> }
>
> class B
> {
>   function Go()
>   {
>     A::Go();
>   }
> }
>
> A::Go();
> $a = new A();
> $a->Go();
>
> B::Go();
> $b = new B();
> $b->Go();
>
>
> My understanding is that the output should be:
>
> Called Statically
> Called Dynamically
> Called Statically
> Called Statically
>
> Yet the output is actually:
>
> Called Statically
> Called Dynamically
> Called Statically
> Called Dynamically
>
>
> Now my question is, is this what was intended?
>
> It seems that if you call a static class from within a dynamic instance of
a
> class, the static class then decides $this should reference the class from
> which the static class was called
>
> Anyone else come across this?
>
> It could be useful, but right now, its bloody annoying! I need a class to
be
> called from within another clas, and it needs to know wether it has had an
> instance created, or wether it is being statically called, and now I'll
have
> to write some kludge code instead...
>
>
>
>
> ///////////////////////////////////////////////////////////////////
> // Sean Malloy
> // Developer
> // element
> // t: +61 3 9510 7777
> // f: +61 3 9510 7755
> // m: 0413 383 683
> ///////////////////////////////////////////////////////////////////
>
> DISCLAIMER:
> © copyright protected element digital pty ltd 2002.
> the information contained herein is the intellectual property
> of element digital pty ltd and may contain confidential material.
> you must not disclose, reproduce, copy, or use this information
> in any way unless authorised by element digital pty ltd in writing
> or except as permitted by any applicable laws including the
> copyright act 1968 (cth).
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to