2016-07-14 2 views
0

이 질문에 많은 의미가 없으면 사과드립니다. 나는 말로 표현하는 데 약간의 어려움을 겪고있다. 나는 아직도 PHP에 대해 많은 것을 배우고 있으며 나는 어휘를 아직 가지고 있지 않다. 없이개체의 변수 이름을 사용하지 않고 개체의 메서드를 사용하려면 어떻게해야합니까?

$myObject = new myClass(); 
$myObject->myMethod($myObject->getName()); 

:

class myClass { 
    protected $name; 

    public function getName() { 
     return $this->name; 
    } 

    public function myMethod($string) { 
     // Do something 
    } 
} 

내가 이런 일을 할 수 있도록하고 싶습니다 :

나는 유일한 매개 변수입니다 같은 다른 클래스 객체를 받아들이는 방법이있는 클래스가 myMethod()으로 전달되는 개체 메서드의 변수 이름을 사용합니다. 내 머리 속에는 다음과 같이 작동합니다 :

$myObject->myMethod($this->getName()); 

그러나 작동하지 않습니다. 어떤 제안? 이것은 가능한가?

+0

하지만'$ myObject-> getName()'은 프로토 타입과 같은 클래스가 아닙니다. 그 문자열 – RiggsFolly

+0

당신은 마법의 방법에 대해 이야기하고 있습니까? – bassxzero

+0

내 실수. 나는 잘못 입력했다. 그것은 바뀌 었습니다. 그리고 저는 마술 방법에 익숙하지 않습니다, @ brassxzero. 나는 그것을 들여다 볼 것이다. 감사. – spuality

답변

0

$ this는 클래스와 함께 존재하며 그 객체를 나타 내기 때문에 불가능합니다. 만약 당신이 Person 클래스를 가지고 있고 $ this를 가지고 있다면 그것은 현재 Person 객체에 대한 참조임을 의미합니다. 그러나 만약 당신이 어떤 계급도 벗어나면 그것은 아무것도 의미하지 않습니다.

0

당신은 할 수 없습니다. 객체 변수를 명시 적으로 참조해야합니다.

여기서 제안을 https://wiki.php.net/rfc/howto으로 변경하면 구문을 강제로 변경할 수 있습니다.

관련 문제