ITHACK
~ みんなのIT部門 ~

【PHP】引数 – 関数に値を与える

関数の呼び出し時に値を与える引数と呼ばれる仕組みがあります。

ここでは関数と引数について解説します。

なお、関数の引数については次の記事をご覧ください。

  • 引数

引数とは

引数とは、関数を呼び出す時に値を与える仕組みです。
引数を使うことで、柔軟性のあるプログラムを作成できるようになります。

基本構文

関数で引数を使う場合、定義と呼び出し時に引数に関する定義を記述します。

関数の定義

function 関数名( $引数変数名 ) {
    // 処理1
    // 処理2
    // ・・・・・・
}

関数の定義では、呼び出し時に与えた値を記憶する引数変数を丸括弧()の中に定義します。
与える値が複数ある場合はカンマ(,)区切りで必要な数だけ、引数変数を記述します。

関数の呼び出し

関数名(引数値);

関数の呼び出しでは与える値を丸括弧()の中に記述します。
引数値はリテラルまたは変数、数式で記述することができ、複数ある場合はカンマ(,)区切りで必要な数だけ、記述できます。

サンプルコード

引数がある関数のサンプルコードをご覧ください。

<?php

function lets_programming($greeting) {
    echo $greeting."\n";
    echo "プログラミンを学んでいきましょう。\n";
    echo "今回は関数の引数を理解しましょう。\n";
    echo "\n";
}

lets_programming("おはようございます!");

?>
おはようございます!
プログラミンを学んでいきましょう。
今回は関数の引数を理解しましょう。

3~8行目で関数を定義しており、3行目の$greetingが引数になります。
引数は変数として定義し、通常の変数と同様に任意の変数名を付けることができます。

そして、10行目で関数を呼び出しており、引数値として"おはようございます!"を与えています。
引数値は$greetingに記憶され、関数の処理が実行されます。
実行結果からも$greetingに値が記憶されていることが分かります。

また、呼び出しごとに引数値を変えることができます。

<?php

function lets_programming($greeting) {
    echo $greeting."\n";
    echo "プログラミンを学んでいきましょう。\n";
    echo "今回は関数の引数を理解しましょう。\n";
    echo "\n";
}

lets_programming("おはようございます!");
lets_programming("こんにちは!");
lets_programming("こんばんわ!");

?>
おはようございます!
プログラミンを学んでいきましょう。
今回は関数の引数を理解しましょう。

こんにちは!
プログラミンを学んでいきましょう。
今回は関数の引数を理解しましょう。

こんばんわ!
プログラミンを学んでいきましょう。
今回は関数の引数を理解しましょう。

同じ関数を呼び出していますが、呼び出し時の引数値が異なるため、関数の実行結果が変わっていることが分かります。

このように引数を使うことで、処理を変えることができます。

引数が複数ある場合

基本構文で説明した通り、引数は複数使うことができます。

次のサンプルコードをご覧ください。

<?php

function lets_programming($greeting, $title) {
    echo $greeting."\n";
    echo "プログラミンを学んでいきましょう。\n";
    echo "今回は".$title."を理解しましょう。\n";
    echo "\n";
}

lets_programming("おはようございます!", "変数");
lets_programming("こんにちは!", "for文");
lets_programming("こんばんわ!", "関数");

?>
おはようございます!
プログラミンを学んでいきましょう。
今回は変数を理解しましょう。

こんにちは!
プログラミンを学んでいきましょう。
今回はfor文を理解しましょう。

こんばんわ!
プログラミンを学んでいきましょう。
今回は関数を理解しましょう。

先ほどのコードから次の点を変更しています。

  • 3行目で引数に$titleを追加
  • 6行目で引数の$titleを使用
  • 関数の呼び出し(10~12行目)で引数値を追加

引数を複数ある場合は、関数の定義の丸括弧内にカンマ(,)区切りで引数変数を記述します。
※ ($greeting, $title)の部分です。

そして、関数の呼び出しも同様に、引数値をカンマ(,)区切りで記述します。

引数値は前から順番に、引数変数に順次記憶されます。

もし、3つ、4つと引数を追加したい場合は、2つ目と同様にカンマ(,)区切りで記述しましょう。

演習問題

問題1

2つの値の四則演算結果を出力するプログラムを作成してください。
なお、下記条件を満たすものとします。

  • 2つの値は標準入力で与える
  • 四則演算とその結果の出力は関数にする
$ php practice.php
number1 > 9
number2 > 4
9 + 4 = 13
9 - 4 = 5
9 * 4 = 36
9 / 4 = 2.25
$ php practice.php
number1 > 5
number2 > -3
5 + -3 = 2
5 - -3 = 8
5 * -3 = -15
5 / -3 = -1.6666666666667
$ php practice.php
number1 > 8
number2 > 0
8 + 0 = 8
8 - 0 = 8
8 * 0 = 0
8 / 0 = ----

問題2

BMIと肥満度を出力するプログラムを作成してください。
なお、下記条件を満たすものとします。

  • BMIの計算式は『体重(kg)÷ (身長(m))2』とする
  • BMIの計算は関数にする
  • 体重と身長は標準入力で与える
  • 肥満度は次の表の通りとする
BMI 肥満度
18.5未満 低体重
18.5以上、25.0未満 標準体重
25.0以上、30.0未満 肥満(レベル1)
30.0以上、35.0未満 肥満(レベル2)
35.0以上、40.0未満 肥満(レベル3)
40.0以上 肥満(レベル4)
$ php practice.php
体重(kg) > 50
身長(cm) > 155
BMI = 20.811654526535
肥満度:標準体重
$ php practice.php
体重(kg) > 47
身長(cm) > 168
BMI = 16.652494331066
肥満度:低体重

まとめ

関数の引数は呼び出し時に値を与える仕組みです。
関数の定義関数の呼び出しの丸括弧内に引数変数・引数値を記述することで値の受け渡しができるようになり、複数ある場合は、カンマ(,)区切りで記述することで必要な数だけ追加することができます。