LoginSignup
0
1

More than 5 years have passed since last update.

PHP基礎(6)関数

Last updated at Posted at 2018-10-12

関数

中学生の数学で出てきた方程式を覚えていますか?例えば、
y = x * 2
というように未知数xを使って、yを定義する等式です。
この場合は、x=1のときyは2、x=2のときyは4、というようにxが決まるとyが分かります。
これは数学的に
f(x) = x * 2
という形で表現します。ここでfは関数を示すfunctionの頭文字です。f(x)は、「未知数xを関数に渡す」という表現をしているだけで、そのf(x)が、「x * 2」と等しい、つまりf(x)の答えは「x * 2」です、と言っています。
数学的には、xが決まれば、f(x)の値も決まるという意味になります。

プログラムの関数もこの数学の関数と同じです。プログラムの関数では、xは引数、右辺は戻り値と呼びます。
つまり、関数は引数を受け取って、どのような値でも返すことができるものなのです。

PHPの関数はfunction文で定義します。関数の命名は小文字始まりであれば自由です。引数は0個以上を受け取り、関数の中では演算をして、returnで戻り値を返します。

以下は関数の例を示します。

<?php

/* 関数:素数チェック 
   引数で受け取った数が素数かどうかを判定し、素数の時true、そうでない時falseを返します。
*/
function prime($num) {

    if ($num < 2) {
      // 戻り値:false(素数ではない)
      return false;
    }

    $i = 0;

    while ($i < $num) {
        // %は割った余りを返す演算子です。
        if ($i >= 2 && $num % $i == 0) {
            // 戻り値:false(素数ではない)
            return false;
        }
        $i ++;
    }

    // 戻り値:true(素数である)
    return true;
}

/* 素数列挙 */
$i = 0;
while ($i <= 233) {
    //素数チェック関数の呼び出し
    if (prime($i)) {
        echo "$i ";
    }
    $i ++;
}
?>

関数はある処理の単位ですので、関数を考えるとき、その処理を行うために必要なインプット(引数)と、処理の結果であるアウトプット(戻り値)を最初に決めるところから始めます。
引数の宣言は関数名の後に、変数をカンマ(,)で区切って列挙します。変数ですので$を先頭に付けます。
戻り値は、関数を抜けるときreturn文で値(変数)を返すことを明示します。この値(変数の中身)が関数の戻り値になります。(戻り値がないときは単にreturn;と書きます)

演習0-3

0-3-1)
引数\$aと\$bの2つを整数として受け取り、\$aと\$bの平均を計算しその結果を返す関数を作って動きを確認して下さい。

0-3-2)
四角の面積を計算する関数を作って呼び出してください。縦(\$height)と横(\$width)を引数としてその関数に渡し、戻り値を面積とします。

0-3-3)
球体の体積(下記のURL参照)を計算する関数を作って呼び出してください。
参考URL:https://sci-pursuit.com/math/volume-of-sphere.html
球の半径(\$r)を引数としてその関数に渡し、戻り値を体積とします。

0-3-4)
適正体重(下記のURL参照)を計算する関数を作って呼び出してください。
参考URL:https://www.med.or.jp/forest/health/eat/11.html
身長(\$height)を引数としてその関数に渡し、戻り値を適正体重とします。

<<PHP基礎(5)反復

PHP基礎(7)クラス>>

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1