클래스 (함수 setFunction
)에서 함수를 설정하는 기능을 갖고 싶습니다. 나중에 (매개 변수 지정 등) 외부에서 호출 할 수있는 함수 (예 : getFunction
)를 가져오고 싶습니다. 여기에 내가 시도 무엇 :PHP에서 함수에서 함수를 반환하는 방법은 무엇입니까?
class Test
{
var $function;
function setFunction($foo)
{
$this->function = $foo;
}
function getFunction()
{
return $this->function;
}
function foo1($a)
{
print "foo1: ".$a."\n";
}
function foo2($b)
{
print "foo2: ".$b."\n";
}
}
$oClass = new Test();
$oClass->setFunction($oClass->foo1);
$oClass->getFunction()('test'); # <--- line 32
예상 출력
foo1: test
이다하지만 대신 오류가 발생합니다 :
PHP Parse error: syntax error, unexpected '(' in tester.php on line 32
모든 아이디어를 어떻게이 문제를 해결하기 위해? 다음은 몇 가지 제약 조건입니다.
- 이는 각 기능에 대한 임의의 매개 변수에 대해 작동해야합니다.
- 정의 할 함수는 항상 클래스 자체에 지정됩니다 (도움이되는 경우).
PHP4에서 실제로 작업하고 있습니까? 아니면 태그를 엉망으로 만들었습니까? 또한 [callables in PHP] (http://php.net/manual/en/language.types.callable.php)를 살펴보십시오. –
예, PHP4가 필수입니다. – Alex
@Alex : PHP 4 코드가 필요하더라도 per-se는 PHP 4에만 국한되지 않으므로 태그를 제거했습니다. 나는 이것이 당신과 괜찮 았으면 좋겠다. – hakre