フルスタックエンジニアのノウハウ
2020.01.08    2020.03.18

関数とは何か?

関数とは何か?

この記事の動画版はこちら

チャンネル登録お願いします!


今回は、プログラミングの「関数(かんすう)」について、初心者にわかりやすく説明します。


この記事で分かること
・関数とは何か?
どのような場合に使うのか?



結論から言うと


 関数は機能を再利用できるように「部品化」したもの


ちなみに関数のことを英語では「ファンクション(function=機能)」と言います。


変数や引数もそうですが、プログラミング用語は日本語にすると何故か分かり辛いものが多いのですが、言葉の意味はそれほど重要ではないので、そのまま覚えてしまいましょう。



なぜ関数を使うのか?


プログラムを作っていると「同じような処理」が、複数箇所でいくつも出てくることがあります。


例えば、「ユーザーが入力したメールアドレスをチェック」するような処理。


ログイン画面のメールアドレス欄に、ユーザーが入力したアドレスが「正しい形式で入力されたかどうか?」をチェックするような場合です。


メールアドレスの入力欄はログイン画面だけに限らず、


・新規ユーザー登録画面
・アカウント情報の編集画面
・お問い合わせフォーム
・商品購入画面


など色々な場所に存在します。


これらは全てプログラムが異なるので、同じようなメールアドレスチェック処理をそれぞれの場所に書かなければなりません。


もし、このチェック処理に後からバグが見つかって直さなきゃならない場合、全ての場所を直す必要があります。とても面倒くさいですし、直し漏れがありそうで怖いですよね。 


そんな時は、この処理を「機能部品」として共通利用出来るようにしてしまいましょう!


入力されたメールアドレスをチェックする処理の部分だけを取り出して、それを機能部品として共通化することが出来ます。


この共通化された機能部品のことを「関数(function)」と言います。



関数の作り方


処理を関数化するには、以下のような形式で「関数として定義」します。




関数名は好きな名前を付けられます。
②関数に渡す材料です。
③関数が行ってくれる処理です。
④処理した結果、関数が返してくれる内容です。



先ほどの「メールアドレスのチェック処理」を関数化する場合は、以下のようになります。




このように定義すれば関数は完成です。


一度定義して部品化してしまえば、プログラム側でその機能が必要になった時に、対象の関数を呼び出すだけで使うことが出来ます。


毎回各プログラムに同じ処理を書かなくても「あの関数を使ってね」と書くだけで済むのです。


チェック処理にバグがあった場合も、この関数自体を直すだけで済みます。


他にも例えば、


・数字を材料として渡すと、3桁ずつカンマ付き区切って見やすくしてくれる。
・件名、本文、宛先メールアドレスを渡すと、メールを送信してくれる。
・指定したメールアドレスのユーザーがすでに登録済がどうかチェックしてくれる。


など、再利用出来そうな便利な機能は関数化しておくようにします。


実際の現場では「この処理は他でも使うから関数化しておいて」などと言ったりします。



PHPにはあらかじめ便利な関数が多く備わっている


PHPなどのプログラミング言語にはあらかじめ便利な関数が多く備わっています。


先ほど例に出した、数字を渡すとカンマ付きにしてくれる関数は「number_format」というものがあらかじめ用意されています。





用意されている関数は、PHPのマニュアルサイトにある「関数リファレンス」で確認出来ます。


PHP関数リファレンス
https://www.php.net/manual/ja/funcref.php



また、「逆引き系」の書籍も関数を見つけるのに便利です。


PHP逆引きレシピ
PHPポケットリファレンス


このようにあらかじめ備わっている便利な関数や、オリジナルの関数を上手く使ってアプリケーションを組み立てていくのがプログラマーです。


自分のアプリケーションで再利用出来そうな機能は、どんどん関数化しましょう。


同じような処理は一度書いたら作らなくてよいので、自分の関数資産が増えてくると、プログラミングはどんどん楽になっていきます。


関数を便利に使っていきましょう!


なお、関数の「引数」「戻り値」については以下の記事で詳しく解説しています。

関連記事

引数は「大根」、戻り値は「大根おろし」


おすすめ記事
無料メルマガ配信中