【PHP8.x】is_callable関数の使い方
is_callable関数は、指定された変数が関数として呼び出し可能であるかどうかを判定する関数です。
この関数は、与えられた変数が実際に実行可能なコード、つまり関数やメソッドとして呼び出すことができる形式であるかを確認するために利用されます。具体的には、PHPのグローバル関数名を示す文字列、ClassName::methodName
のような静的メソッドを示す文字列、['ClassName', 'methodName']
のような配列形式で指定される静的メソッド、または[$object, 'methodName']
のようにオブジェクトとそのメソッドを指定する形式、さらには無名関数(クロージャ)などが「呼び出し可能」と判断されます。また、__invoke
マジックメソッドを実装したクラスのインスタンスも、呼び出し可能なオブジェクトとして認識されます。
is_callable
関数は、対象の変数が呼び出し可能であればtrue
(真)を、そうでない場合はfalse
(偽)を戻り値として返します。この関数は、特にコールバック関数として外部から値を受け取る際や、設定ファイルなどから動的に実行する処理を指定する際に非常に重要です。例えば、ユーザーからの入力や設定値として渡された文字列が、実際に存在する関数やメソッドの名前であるかを確認することで、未定義の関数を呼び出すことによるエラーを未然に防ぎ、プログラムの安全性と堅牢性を高めることができます。これにより、柔軟なプログラム設計が可能になるとともに、予期せぬ問題の発生を抑制することに貢献します。
基本的な使い方
構文(syntax)
<?php
function exampleFunction() { /* ... */ }
var_dump(is_callable('exampleFunction'));
?>
引数(parameters)
callable $value, bool $syntax_only = false, ?string &$callable_name = null
- callable $value: 呼び出し可能かどうかを判定する対象の値
- bool $syntax_only = false: trueを指定すると、構文のみのチェックを行う(実行はしない)
- ?string &$callable_name = null: 呼び出し可能な関数名やメソッド名が格納される変数(参照渡し)
戻り値(return)
bool
指定された変数が呼び出し可能なコールバックである場合にTRUEを、そうでない場合にFALSEを返します。