【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

PHPで関数名が重複していないか確認する方法(function_exists)

本記事では、関数名が重複していないか事前に確認する方法とそれを実装するために必要なfunction_exists関数の使い方について解説しています。

PHPの学習におすすめ書籍
独習PHP 第4版
総合評価
( 5 )
メリット
  • PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
  • PHPによるWebアプリ開発の基礎・基本テクニックを学べる
楽天ブックス
¥3,740 (2024/11/20 10:27時点 | 楽天市場調べ)
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

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('まだ関数名は使われてないよ!');
}
?>

サンプルコード

それでは最後に、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はまだ使われていません」と表示がされていることが確認できます。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次