本記事では、関数名が重複していないか事前に確認する方法とそれを実装するために必要なfunction_exists関数の使い方について解説しています。
ITエンジニア特化の転職サイト!
自社内開発求人に強い【クラウドリンク】
PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!
Contents
function_exists関数の使い方
関数名が既に使用されていないかを確認するには、function_exists関数を使います。
function_exists関数の使い方は以下のとおりです。
if(function_exists('①引数')) {
// ② true
} else{
// ③ false
}
function_exists関数の使い方
- 引数:既に使用されているか調べたい関数名を文字列で設定
- true:関数名が既に使用されている時に実行させる処理を記述
- false:関数名が使用されていない時に実行させる処理を記述
関数名が使用されていない時にだけ処理を実行させたい時はよくあります。このような場合、通常通りの使い方ではelse内に書く必要がありコードが長くなってしまいます。
このような場合は、function_exists関数の前に「!(ビックリマーク)」を付けてtrueとfalseの結果を入れ替えてしまいましょう。
<?php
if(!function_exists('fn1')) {
print_r('まだ関数名は使われてないよ!');
}
?>

PHPで変数の前にビックリマーク(!)の意味と使い方本記事では、PHPで変数の前に使用されるビックリマーク(!)の意味と使い方について解説しています。...
サンプルコード
それでは最後に、function_exists関数内で重複していないかを確認することが出来るサンプルコードを紹介します。
<?php
function fn1(){
print_r('TEST');
}
function fn_check($str){
if(function_exists($str)) {
print_r("関数名:${str}は既に使われています<br>");
} else{
print_r("関数名:${str}はまだ使われていません<br>");
}
}
fn_check('fn1'); // -> 関数名:fn1は既に使われています
fn_check('fn2'); // -> 関数名:fn2はまだ使われていません
?>
1回目のfn_check関数ではfunction_exists関数の引数に渡す値が「fn1」です。これは既に定義されている関数名のため「fn1は既に使われています」と表示がされていることが確認できます。
2回目のfn_check関数ではfunction_exists関数の引数に渡す値が「fn2」です。これはまだ定義されていない関数名のため「関数名:fn2はまだ使われていません」と表示がされていることが確認できます。