【PHP超入門】ユーザー定義関数の基礎の基礎 | function・return

PHPではJavaやCのようなブログラミング言語同様に、自分で定義した関数(function)を作成することができます。

この記事では、

・関数とは
・関数の使い方

という関数の基本的な使い方を解説し、

・return(返り値)とは
・returnの基本的な使い方

で関数の返り値の指定方法を解説いたします。

今回はそんな関数や返り値の使い方について、わかりやすく解説します!

関数とは

関数とは値を演算したり、条件分で判断したり、データを登録したりなど、特定の動作をまとめて入れておく箱のようなイメージです。

PHPでは関数は大きく分けて2つあります。

・組み込み関数
PHPで提供している関数(配列を結合するarray_merge関数や文字列検索を行うstrposなど)。

・ユーザー定義関数
ユーザーが独自に処理を記述した関数。

この記事では主に後者のユーザー定義関数について解説していきます。

ユーザー定義関数はfunctionを指定することで、使用することができます。

関数の書き方

ユーザー定義関数(function)は以下のように定義します。

functionの書き方1:引数なし

関数の定義は「function 関数名()」の形式で記述します。

関数の呼出しは「関数名()」で指定します。

functionの書き方2:引数あり

functionに引数を指定する場合は、呼び出す側でも引数に値をセットしておく必要があります。

関数の使い方

ここではfunctionを指定した関数の使い方を見ていきましょう。

引数なし

まずは引数を指定しない簡単な関数のプログラムを紹介します。

サンプルプログラム

実行結果:

このプログラムでは、

① 関数の呼出し処理であるfoo()が実行される
② function foo()に処理が飛ぶ
③ function foo()の中に記述している処理が実行される

となります。

引数あり

続けて引数を指定した関数の使い方を見ていきましょう。

関数に引数を指定することで、渡された関数の内部で引数の値を元に処理をすることができます。

サンプルプログラム1

実行結果:

このプログラムでは、

① 関数の呼出し処理であるfoo($val)に引数$numを指定して実行
② function foo($val)に処理が飛ぶ
③ function foo($val)の中で引数$valの演算結果を出力する

となります。

また、関数は一度定義すれば何度でも呼び出すことができます。

以下の処理では配列をループで回して、要素の値を引数として配列を呼出しています。

サンプルプログラム2

実行結果:

ここでは、簡単な関数のプログラムを紹介しましたが、より応用的な関数の処理についても知りたい方は、以下の記事で詳しく解説しています!

【PHP入門】引数の基礎を完全攻略する!関数を呼び出す方法5選
更新日 : 2019年5月22日

引数の型を指定する

関数には引数の型を指定(タイプヒンティング)することができます。

引数の型を指定しておけば、指定した型以外の型が引数で渡されたときにエラーを返します。

サンプルプログラム

上記のサンプルでは関数で引数の型をInt型に指定していますが、引数に文字列「foo(‘test’)」を渡すと、引数の型に一致しないため、

「Fatal error: Uncaught TypeError: Argument 1 passed to foo() must be of the type integer, ~」

のエラーが発生します。

引数にデフォルト値を設定する

関数の引数にはデフォルト値を設定することができます。

呼び出し元によってはNULLを渡してしまう可能性があるときなどに、あらかじめデフォルト値をセットしておけば、NULL参照のエラーを防ぐことができます。

サンプルプログラム

実行結果:

実行結果から分かるように関数呼出し時に正しく値がセットされているときは、関数の定義で初期化した値は適用されません。

return(返り値)とは

PHPでは、関数を使用するときにfunctionを指定して関数名を定義します。

関数を使用すれば、関数内で独立した処理を実行することが可能となりますが、関数内の処理結果を取得したい場合は、returnオプションを指定して返り値を取得することができます。

また、関数内でreturnを指定すれば、関数の処理の途中でも任意の場所で関数を呼び出し元に制御を戻すことができます。

returnは以下のように指定します。

returnの書き方:

なお、関数を途中で終了する場合は、返り値を指定せずに任意の場所でreturnのみを記述することで制御が呼び出し元に戻ります。

returnの使い方

ここでは実際に関数にreturnを指定して関数の処理を途中で終了したり、関数の返り値を取得する処理について見ていきましょう。

基本処理

前述したように関数内での実行結果をreturnオプションを指定して、返り値として取得することができます。

以下に直径の値を関数の引数に渡して、関数の中で円周の長さを計算して計算結果を返す簡単なサンプルを紹介します。

サンプルプログラム1:数値を返す

実行結果:

サンプルでは、円周の長さを関数内で取得するために引数で直径の値を渡しています。

関数GetPIでは引数で渡された直径の値を元に円周の長さを計算して、計算結果をreturnで返しています。

このように関数の演算結果を呼び出し元の処理で取得するには、returnを使用すると便利であることがわかりますね!

また、returnで指定する返り値には文字列や配列を指定することも可能です

以下のサンプルでは、戻り値に文字列Stringを指定しています。

サンプルプログラム2:文字列を返す

実行結果:

続いて、戻り値に配列を指定するサンプルです。

サンプルプログラム2:配列を返す

実行結果:

関数の途中で処理を終了する

関数の処理の途中で関数を終了する場合は、処理を戻したい箇所でreturnのみ指定することで関数が終了します。

以下にreturnを指定して処理を終了する方法を記述します。

サンプルプログラム:

実行結果:

このサンプルでは値10を指定した変数を関数fooに渡しています。

関数の中ではif文で渡された値より20のほうが大きかったら、if文内でreturnを指定して関数の処理を終了しています。

そのため、if文の後の処理である「echo $val」が実行されていません。

真偽値を指定する

関数の返り値には真偽値(bool型)を指定することも可能です。

例えば関数内で指定した値が存在した場合はTRUEを、存在しなかったらFALSEを取得したい場合にreturnで真偽値の値を指定します。

以下に指定した値の存在有無の結果で真偽値を返す方法を記述します。

サンプルプログラム:

実行結果:

サンプルでは関数fruitsに引数で配列と検索する値をif文の中で指定しています。

関数の処理では、渡された引数の配列に指定した値が存在するかif文でin_array関数を使用してチェックし、存在したらtrueを、存在しなかったらfalseを返します。

if文は評価がtrueの場合if文内の処理を実行しますので、関数呼び出し元の処理結果がtrueのためif文の処理を実行しています。

in_array関数の使い方については、以下の記事でも詳しく解説していますので、ぜひ参考にしてください!

まとめ

ここでは、PHPでのユーザー定義関数(function)や返り値(return)について、

・関数とは?
・関数の基本的な使い方
・返り値(return)とは
・returnの基本的な使い方

などについて解説しました。

関数の処理や処理結果をreturnで取得することはよくありますので、この機会に覚えておきましょう。

functionやreturnの使い方を忘れてしまったら、この記事を思い出してくださいね。

未経験者でも安心の徹底サポート!まずは完全無料の体験レッスン!

「プログラミングに興味があるけど未経験だし、、、」とお悩みの方はご安心ください。

  • 24時間質問し放題
  • あなただけのオーダーメイドカリキュラムで学習の効率化
  • 仕事獲得方法からオリジナルアプリ開発方法

侍エンジニア塾では徹底したサポートによる「オーダーメイドカリキュラム」を作成しています。

まずは無料体験レッスンで、「挫折しない学習方法」や「あなただけの学習ロードマップ」を知り、学習の効率化をしましょう。独学の難点である「オリジナルアプリの作り方やエラーの対処法」についてもアドバイスさせていただきます。

詳しいサービス内容は、下記よりご参照ください。

cta_mtm1

LINEで送る
Pocket

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説