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