Re: Question on PHP 6 and static calls to instance methods.
| From: | Nathan Nobbe | Date: | Mon, 05 May 2008 01:10:38 +0000 |
| Subject: | Re: Question on PHP 6 and static calls to instance methods. | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-273866@lists.php.net to get a copy of this message | ||
On 5/3/08, Adam Richardson <adam@envisionic.com> wrote:
>
> I have a quick question on what's coming in PHP 6.
>
> I've incorporated use of the ability to call instance methods through
> static calls, allowing for me to mimic multiple inheritance without having
> to make edits to classes that are already working because of the behavior of
> '$this' when instance methods are called statically.
>
> As stated on in the basics section on classes and objects:
>
> "$this is a reference to the calling object (usually the object to which
> the method belongs, but can be another object, if the method is called
> statically from the context of a secondary object)."
>
> I've made great use of that functionality in my framework. However, It
> sounds like this is going to cause a fatal error in PHP6. Is this in fact
> true? And, if the behavior is going to change, can somebody explain what
> the impetus for this change was?
>
this is an interesting feature; i was not previously aware of it. its
something akin to javascripts concept of the execution context and the
apply(), call() methods. i think it would be better if the class that used
the $this keyword whereby it was made to refer to the instance of the
caller, have access to the protected members of the other class. i think
this would be reasonable because the client has to invoke the method on the
class that intends to use the $this keyword in the context of its caller;
essentially sanctioning access to protected members. i think the feature
would be quite awesome if that were the case and i can imagine instances
where i would use it.
-nathan