다음 설정이 있습니다.
class test {
public static function something() {
$somethingElseFunction = "somethingElse";
// How can I call the method with the name saved in variable?
}
public static function somethingElse($a) {
echo 'bla';
}
}
변수를 사용하여 함수를 어떻게 호출 할 수 있습니까? (함수 이름은 변수에 있습니다). 또한 그것을 위해 function_exists ()해야합니다.
이것을 시도 :
if (function_exists(self::$somethingElseFunction ())) {
if (!call_user_func(self::$somethingElseFunction , $a)) {
}
}
작동하지 않았습니다.
에서 참조 해제를 PHP>=5.4
사용할 수 있습니다 self::
.
self::$somethingElseFunction();
-하지만 이전 버전에서는 오류가 발생합니다 (동적 정적 메서드 역 참조 사용이 허용되지 않았기 때문). 따라서 다음과 같은 것을 항상 사용할 수 있습니다 call_user_func_array()
.
class test {
public static function something() {
$somethingElseFunction = "somethingElse";
call_user_func_array(array(__CLASS__, $somethingElseFunction), array("bla"));
}
public static function somethingElse($a) {
var_dump($a);
}
}
test::something();
-이것은 작동합니다 PHP>=5.0
function_exists()
호출에 대해 -문자열을 매개 변수로 예상하므로 사용하는 것이 좋습니다. method_exists()
해당 함수는 작업을 수행하기위한 것입니다.
public static function something() {
$somethingElseFunction = "somethingElse";
if(method_exists(__CLASS__, $somethingElseFunction))
{
call_user_func_array(array(__CLASS__, $somethingElseFunction), array("bla"));
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다