2016-10-18 3 views
-3

모두 제목에 있습니다. 내가 PHP에서 원하는 것을 Exemple :변수의 값으로 함수 호출

function x($name){ 
echo 'hello'.$name; 
} 

$var = "x"; 

$$var('Joe'); 

반환 "조"

나는이 질문은 이미 많은 답을 생각하지만 난 그렇게 내 검색 쿼리가 무의미 철자 오른쪽 단어를 찾을 수 없습니다 ...

감사

편집 : 내가 플레이 프레임 워크와 스칼라를 사용하고 있는데 내가 사용 도구에 따라 다른 템플릿을 호출합니다. 당신이 할 수있는 반사를 사용

Ok(views.html.<Template name based on user agent>(many args)) 
+0

그래서, 이것은 PHP, Java 또는 스칼라 질문? 또한, 귀하의 질문은 무엇입니까? – azurefrog

+0

자바에서는이 작업을 수행 할 수 없습니다. 해결하려는 비즈니스 요구 사항은 무엇입니까? –

+2

자바 * 또는 스칼라에서 리플렉션을 사용하여 * 수행 할 수 있지만, 실제로 * 수행하려는 작업을 수행하는 가장 좋은 방법이있을 수 있습니다. 디모데가 말했듯이, 당신이 이것을 필요로한다고 생각하는 이유는 무엇입니까? – Jesper

답변

1

하지만 문법은 매우 장황 : 내가 할 수있는 방법을 검색

Ok(views.html.templateFileName(many args)) 

: 플레이에서 내가 사용하는 템플릿을 호출합니다.

는 보통 우리가 fooFoo 클래스의 객체 참조이 foo.bar(1) 같은 메소드를 호출 Foo으로라는 클래스를 선언하고

정수

을 Integer가 인수를 리턴 내부 bar라는 메소드를 선언 할 수 있습니다.

이제는 메서드 이름 인 bar을 사용하여 메서드를 호출 할 수 있습니다.

class Foo { 
    def bar(x: Integer): Int = x * x 
} 

val result = classOf[Foo].getDeclaredMethod("bar", classOf[Integer]).invoke(new Foo, new Integer(1)) 

REPL 출력

@ class Foo { 
    def bar(x: Integer): Int = x * x 
    } 
defined class Foo 
@ 
@ val result = classOf[Foo].getDeclaredMethod("bar", classOf[Integer]).invoke(new Foo, new Integer(1)) 
result: Object = 1