2015-01-08 3 views
0

Я хотел бы знать, если это возможно в PHP (используя отражение или нет), чтобы получить имя переменной abc внутри метода класса в этом примере.Как получить имя переменной инициализатора внутри класса в PHP

class Example 
{ 
    public function someMethod() 
    { 
    // once this method is called, I want it to echo `abc` in this example 
    } 

} 

Теперь, когда я вызываю метод, используя имя переменной, как

$abc= (new Example)->someMethod(); 
echo $abc; // abc 

Я хотел бы видеть имя переменной, «Foo», показанной, другими словами, класс должен был бы следует знать имя переменной при возврате содержимого методов.

+1

Вы хотите, чтобы объект, чтобы быть в курсе на имя переменная, назначенная ей? – castis

+0

И что вы ожидаете от эха, если вы делаете '$ abc = (новый пример) -> someMethod(); $ def = &$abc; echo $ def; 'или даже' $ abc = (новый пример) -> someMethod(); $ def = &$abc; unset ($ abc); echo $ def; ' –

+0

Я не думаю, что это возможно. Что бы это звучало, если бы это было $ abc = array ($ example-> someMethod())? – Barmar

ответ

1

Я всегда передаете имя переменной будет назначен, если это требуется

class myclass { 
    var $myname; 
    function __construct($myname='no name') { 
     $this->myname=$myname; 
    #print "In BaseClass constructor\n"; 
    } 

    function sayHello() 
    { 
    return "hello from " . $this->myname . "\n"; 
    } 

} 

использование:

$myVar = new myclass("myVar"); 
$yourVar = new myclass("yourVar"); 

echo $myVar->sayHello(); 
echo $yourVar->sayHello(); 
+1

. Спасибо, но это именно то, что сделает 1-уровневый PHP-разработчик. Если вы видели в моем вопросе, я прошу дать возможный ответ с [Reflection] (http://php.net/manual/en/book.reflection.php), если я хочу передать его в качестве аргумента, это было бы слишком легко. –

+3

Я думал, что php предназначен для 1-уровневых программистов. Я имею в виду, что квадратное колесо будет работать, но ... –

+0

@ SoyF.Elmono Возможно. Но вы не можете сравнивать людей, которые используют только PHP, поскольку он может быть экспертом, а другой может быть новичком. Я не так, поэтому этот ответ казался мне noob –

Смежные вопросы