I will clarify the benefits of the keyword.
Single instance of the class can reused in different contexts calls.

<?php

class A
{
    public $object;
}

class B
{
    public $object;
}

class C
{
    public function getCaller() {
        return caller::class;
    }
}

$a = new A;
$b = new B;
$c = new C;

$a->object = $c;
$b->object = $c;

$a->object->getCaller(); // return A
$b->object->getCaller(); // return B

$c->getCaller(); // Fatal Error - undefined caller context

?>

2015-01-30 5:50 GMT+02:00 Juan Basso <jrba...@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.a...@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.
>>
>
>

Reply via email to