IT/php

php is_callable — 변수 내용을 함수처럼 호출할 수 있는지 확인

조원태 2017. 1. 9. 15:29
반응형

is_callable — 변수 내용을 함수처럼 호출할 수 있는지 확인


설명:


bool is_callable ( mixed $var [, bool $syntax_only [, string &$callable_name ]] )

변수의 내용이 함수처럼 호출할 수 있는지 확인합니다. 변수가 유효한 함수의 이름을 포함하고 있는지, 혹은 인코드된 객체와 함수 이름을 가지는 배열인지를 간단히 확인할 수 있습니다.


인수:


var

문자열 변수에 저장한 함수의 이름이거나, 객체 안의 객체와 메쏘드의 이름일 수 있습니다. 예:


array($SomeObject, 'MethodName')

syntax_only

TRUE로 설정하면, 이 함수는 var가 함수나 메쏘드일 수 있는지만 확인합니다. 이는 단순히 문자열이 아닌 변수나 유효하게 콜백에 사용할 수 있는 구조가 아닌 배열을 거부합니다. 유효한 것은 2 엔트리뿐이며, 첫번째는 객체나 문자열, 두번째는 문자열입니다.


callable_name

"호출할 수 있는 이름"을 받습니다. 아래의 예제에서 이는 "someClass:someMethod"입니다. 그러나 somClass::SomeMethod()가 호출할 수 있는 정적 메쏘드라면, 불가능하다는 점에 주의하십시오.


반환값:


var를 호출할 수 있으면 TRUE, 아니면 FALSE를 반환합니다.


예제:


<?php

//  변수를 함수처럼 호출할 수 있는지

//  체크하는 방법.


//

//  함수를 포함하는 간단한 변수

//


function someFunction()

{

}


$functionVariable = 'someFunction';


var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)


echo $callable_name, "\n";  // someFunction


//

//  메쏘드를 포함하는 배열

//


class someClass {


  function someMethod()

  {

  }


}


$anObject = new someClass();


$methodVariable = array($anObject, 'someMethod');


var_dump(is_callable($methodVariable, true, $callable_name));  //  bool(true)


echo $callable_name, "\n";  //  someClass:someMethod


?>

반응형