Re: Use "caller" keyword, to access object caller.
| From: | S.A.N | Date: | Fri, 30 Jan 2015 04:03:26 +0000 |
| Subject: | Re: Use "caller" keyword, to access object caller. | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-81398@lists.php.net to get a copy of this message | ||
Yes.
But this creates a static link that will not be constantly changing context
to the calls, the keyword will give a dynamic abstract communication.
2015-01-30 5:50 GMT+02:00 Juan Basso <jrbasso@gmail.com>:
> Usually it is solved sending the $this instance to class C constructor and
> C object storing it in some attribute, solving the problem. I don't think a
> new keyword would help.
>
> Juan Basso
>
> On Thu, Jan 29, 2015 at 9:53 PM, S.A.N <ua.san.alex@gmail.com> wrote:
>
>> The reason for creating circular references, usually due to the need to
>> bind objects.
>>
>> But this relationship can often be obtained from the context of the call.
>>
>> It will be very convenient to have a keyword that will return reference to
>> an object, which caused this object.
>>
>> Sorry for my English, I'm not a native speaker.
>> A simple example below shows the behavior that we need.
>>
>> <?php
>>
>> class A
>> {
>> public function __construct() {
>> $this->object = new C;
>> }
>> }
>>
>> class B
>> {
>> public function __construct() {
>> $this->object = new C;
>> }
>> }
>>
>> class C
>> {
>> public function getCaller() {
>> return caller::class;
>> }
>> }
>>
>> $a = new A;
>> $b = new B;
>> $c = new C;
>>
>> $a->object->getCaller(); // return A
>> $b->object->getCaller(); // return B
>>
>> $c->getCaller(); // Fatal Error - undefined caller context
>>
>> ?>
>>
>> Create a new keyword can cause problems with backward compatibility...
>> Perhaps you can solve a problem to using an existing keyword?
>>
>> Thank you for any feedback.
>>
>
>