PHP

on Note

引数とは何か、戻り値とは何かを詳しく説明

関数に用いる値として、引数パラメータとも呼ぶ)と戻り値返り値とも呼ぶ)があります。関数とセットで使う値なので、引数と戻り値への理解は必要です。このページでは、次の3点を目標としています。

  • 引数とは何なのかを理解する。
  • 戻り値とは何なのかを理解する。
  • 引数と戻り値を実際に関数で使う。

これらをクリアしながら、引数と戻り値への理解を深めます。

このページは、引数や戻り値がどんな値なのか、また引数と戻り値の指定方法が全くわからないといった、PHP初心者に向けた記事になっています。

関数と引数と戻り値の関係

引数と戻り値は関数で使われるものです。では関数とはどういうものだったでしょうか。

関数とは、値を受け取って、関数で設定した処理を行い、その結果を返すものです。受け取った値を別の値に変換する、変換装置のようなものです。

この、関数が受け取る値のことを引数と呼び、結果として返す値のことを戻り値と呼びます。変換の材料にあたる引数を関数が受け取り、指定された処理を行い、変換結果を戻り値として返すわけです。

引数と戻り値、関数の関係のイメージ

引数と戻り値を理解する為に、少し関数にも触れておく必要があります。

関数について

関数とは、値を渡して、変換結果を返してもらう変換装置です。

プログラムでは様々な処理が必要になります。そのことは何となくイメージできると思います。

処理を関数として定義しておいて、必要な時にその処理を実行するわけですが、関数は定義しただけでは動作しません。つまり処理文を書いただけでは関数は動かないのです。

当然と言えば当然です。関数とはプログラムに組み込まれた変換装置ですが、それは必要な時にだけ動いてくれれば良いのです。

ではその処理が必要だとして、どうすればその関数は動作するのでしょうか。そこで必要なのが関数の呼び出しです。

// 関数の定義
function 関数名() {
    処理
}

// 関数の呼び出し
関数名();

プログラムに必要な変換装置として関数を定義しておいて、その処理が必要な場面で関数を呼び出す。このような流れになります。

呼び出しの際、その関数で変換してほしい値を関数に渡します。この渡す値に対して引数と呼んでいます

実際に処理を書いて理解を深めます。

引数と戻り値の指定方法を構文で確認

引数と戻り値はどこに記述すれば良いのか、どのように指定するのかを構文で確認します。

関数の、定義側でも呼び出し側でも、引数は関数名に続くかっこの中に記述します。また、戻り値はreturnキーワードを使って記述します。

// 関数の定義
function 関数名(引数) {
    処理
    return 戻り値;
}

// 関数の呼び出し
関数名(引数);

関数を呼び出す時、処理してほしい値を引数として渡すイメージです。そして処理結果が returnキーワードによって返ります。

引数が渡されるイメージ

実際にコードを書いて引数と戻り値を説明します。

具体例で引数と戻り値を理解する

具体例として、2つの値の平均値を求めるという処理を関数で定義します。2数の平均値は「(a + b)÷2」で求めることができるので、この計算式を関数ブロックの中に記述することになります。

ここでのポイントは、関数を定義する段階では、まだどんな値が渡されるのかわかっていないという点です。引数にどんな値が渡されるのかわからない状態で処理を定義します。ではどのように引数を指定するのでしょうか。

関数の定義側は、引数に変数を指定します。そしてこの変数名を使って処理を記述します。こうすることで値が渡された時、その値は変数に代入され、それが関数ブロックの中で処理されることになります。

今回の処理では2数の平均を求めるので、変数が2個必要になります。引数を複数指定する場合は「,」(カンマ)で区切ります。

// 関数の定義
function calc($a, $b) {
    $answer = ($a + $b) / 2;
    return $answer;
}

2つの値を格納する変数 $aと $bを引数に指定します。そしてこの2つの変数を使って処理を記述します。

今回は、処理結果を一旦 $answerに代入し、それを returnキーワードで返すようにしています。

以上が関数の定義です。あとは必要な箇所で関数を呼び出し、その際に変換してほしい値を引数として渡します。

// 関数の呼び出し
calc(5, 3);

関数を呼び出す際、引数で、関数に渡す材料として実際の値を指定します。

今回の例では変換結果を一旦$answerに代入し、戻り値にその変数名を指定していまが、変数に代入せず、次のように戻り値として変換式を書いても同じように結果が返ります。

<?php
    function calc($a, $b) {
        return ($a + $b) / 2;
    }

    calc(5, 3);
?>

仮引数と実引数

関数の定義側の引数を、まだ値がわかっていないという意味から仮引数という言い方をします。

また関数の呼び出し側は、実際の値を指定することから実引数という言い方をします。

function 関数名(仮引数) {
    処理
}

// 関数の呼び出し
関数名(実引数);

関数を使う時、仮引数は変数で指定し、実引数には、関数に渡す実際の値を指定します。

実際に引数と戻り値を使ってみる

プログラムの中で三角形の面積を求める処理が必要だったとします。この処理は何度も使うので関数として定義しておくことにします。

三角形の面積を求める計算式は「底辺x高さ÷2」です。なので材料として渡してほしいのは、底辺の値と高さの値です。よって仮引数を2個指定します。

function triangle($a, $b) {
    $answer = $a * $b / 2;
    return $answer;
}

仮引数を$a及び$bとします。計算結果を$answerに代入し、それを returnキーワードで返します。

このように関数として定義しておき、必要な時に関数を呼び出します。

<?php
    function triangle($a, $b) {
        $answer = $a * $b / 2;
        return $answer;
    }

    triangle(5, 4);     // 必要な箇所で関数を呼び出す
?>

関数名( )で関数を呼び出し、その際変換してほしい値を実引数に指定します。

今回は 5と 4を引数として渡して、底辺が 5、高さが 4の三角形の面積の値を戻り値として返してもらう流れです。

まとめ

関数は、必要な箇所で呼び出して使います。この時に、変換の材料として渡す値が引数です。

関数の定義側で示す引数を仮引数、関数の呼び出し側で示す引数を実引数という言い方をします。

実引数は、処理が必要な時に実際の値で示しますが、仮引数は、値がまだわからない、関数の定義の段階で示しておきますので、変数で指定します。

戻り値は returnキーワードを使って返します。