is_callable( callable $name[, bool $syntax_only[, string &$callable_name]] )
は、変数「$name」が、関数やメソッドを呼び出せるかどうかを調べる組み込み関数。
定義
論理型 is_callable( コールバック $name[, 論理型 $syntax_only[, 文字列型 &$callable_name]] );
パラメータ
- コールバック $name
関数やメソッドを呼び出せるかどうかを調べたい変数を指定。
- 論理型 $syntax_only
–
- 文字列型 &$callable_name
呼び出し名を受け取る。
戻り値
論理値。
「コールバック $name」が、関数やメソッドを、呼び出し可能であれば「TRUE」、呼び出し可能でなければ「FALSE」を返す。
構文
変数が、関数やメソッドを呼び出せるかどうかを調べる
論理値 = is_callable( 変数 );
「変数」が、関数やメソッドを、呼び出し可能であれば「TRUE」、呼び出し可能でなければ「FALSE」を返す。
サンプル
変数が、関数を呼び出せるかどうかを調べる(1)
<?php
function sample() {
}
$var = "sample";
echo is_callable( $var ) ? "TRUE" : "FALSE";
?>
function sample() {
}
$var = "sample";
echo is_callable( $var ) ? "TRUE" : "FALSE";
?>
↓↓↓出力結果↓↓↓
TRUE
変数が、関数を呼び出せるかどうかを調べる(2)
<?php
function sample() {
}
$var = "sample";
var_dump( is_callable( $var, true, $varCallName ) );
echo "<br />{$varCallName}";
?>
function sample() {
}
$var = "sample";
var_dump( is_callable( $var, true, $varCallName ) );
echo "<br />{$varCallName}";
?>
↓↓↓出力結果↓↓↓
bool(true)
sample
sample
変数が、メソッドを呼び出せるかどうかを調べる(1)
<?php
class taxClass
{
public $varTax = 0.05;
function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
}
$varClass = new taxClass();
$varMethod = array( $varClass, func_tax );
var_dump( is_callable( $varMethod ) );
?>
class taxClass
{
public $varTax = 0.05;
function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
}
$varClass = new taxClass();
$varMethod = array( $varClass, func_tax );
var_dump( is_callable( $varMethod ) );
?>
↓↓↓出力結果↓↓↓
bool(true)
変数が、メソッドを呼び出せるかどうかを調べる(2)
メソッドの呼び出し名も取得。
<?php
class taxClass
{
public $varTax = 0.05;
function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
}
$varClass = new taxClass();
$varMethod = array( $varClass, func_tax );
var_dump( is_callable( $varMethod, true, $varCallName ) );
echo "<br />{$varCallName}";
?>
class taxClass
{
public $varTax = 0.05;
function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
}
$varClass = new taxClass();
$varMethod = array( $varClass, func_tax );
var_dump( is_callable( $varMethod, true, $varCallName ) );
echo "<br />{$varCallName}";
?>
↓↓↓出力結果↓↓↓
bool(true)
taxClass::func_tax
taxClass::func_tax