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
?>
'IT > php' 카테고리의 다른 글
php class_alias — 클래스의 별칭을 만듭니다. (0) | 2017.01.10 |
---|---|
php method_exists — 클래스 메쏘드가 존재하는지 확인 (0) | 2017.01.09 |
php function_exists — 주어진 함수가 정의되어 있으면 TRUE를 반환한다. (0) | 2017.01.09 |
php extension_loaded — 확장 기능로드 여부 확인 (0) | 2017.01.08 |
php dl — 런타임에 PHP 확장을로드합니다. (0) | 2017.01.08 |