ユーザ定義関数

PHPの組み込み関数について様々なものを見てきました。ここでは関数を自作することにチャレンジしてみましょう。

私たちがPHPプログラマーが自作する関数のことをユーザ定義関数と呼びます。

関数の定義

まずは簡単な計算を行う関数を定義してみましょう。次のプログラム(func1.php)は引数で受け取った金額に税率(1.10)を掛けて返却するものです。

<?php
function calc($price) {
  $result = $price * 1.10;
  return $result;
}

$price1 = calc(100);
echo $price1 . PHP_EOL;

$price2 = calc(1000);
echo $price2 . PHP_EOL;

まずは作成したプログラムを実行してみましょう。ターミナルから次のように実行します。

$ php func1.php
110
1100

それではプログラムの詳細を見てみましょう。

PHPで関数を定義するにはfunctionキーワードを使います。

function calc($price) {
  $result = $price * 1.10;
  return $result;
}

上記のようにfunctionキーワードの後に関数名calc()の中に引数$priceを指定します。calc関数の処理ブロック{}の中では$result = $price * 1.08;税率を掛け合わせた後returnキーワードが登場します。returnキーワードは戻り値を返却するためのものでreturn $result;とすることで$result変数のデータを戻り値として返却することができます。

functionキーワードで定義した関数は、組み込み関数と同様に呼び出すことができます。calc関数の呼び出し部分を見てみましょう。

$price1 = calc(100);

関数を呼び出す際には、まず関数名calcと引数()を記述します。calc関数は1つの引数を受け取るように定義していたので上記のようにcalc(100)と記述できます。またcalc関数を呼び出すと戻り値が返却されるので、関数呼び出しcalc(100)の前に変数$price1を定義して代入演算子=によって戻り値を$price1に代入しています。

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

$price1 = calc(100);
echo $price1 . PHP_EOL;

$price2 = calc(1000);
echo $price2 . PHP_EOL;

上記のようにcalc関数を2回呼び出すことも可能です。

関数を定義する理由

プログラミングを始めて間もない頃は、関数の定義を面倒に感じることもあるかもしれません。一般的には関数を定義することで次のようなメリットが生まれます。

  • 処理の再利用
  • メンテナンス性の向上
  • 可読性の向上

1つは処理の再利用です。関数は一度定義してしまえば他のプログラムから簡単に呼び出すことができます。同じようなプログラムの記述が存在する場合、関数として定義しておけばプログラムを再利用できるようになります。

もう一つはメンテナンス性の向上です。プログラムは一度作成したら完成というわけではなく、様々な理由で修正作業が生まれます。例えば税率の変更などです。先ほどのプログラム(func1.php)ように税率の計算をcalc関数の中に定義しておくことで、もし将来、税率が変更となった場合も修正箇所は1箇所を直すだけで済むようになります。

また関数を適切に定義することでプログラムの可読性の向上にもつながります。関数の目的を明確にして、適切な名前を付けることでプログラムはとても読みやすくなります。さきほどのプログラム(func1.php)の場合はcalc(計算)という名前を付けましたがadd_taxのような名前の方が具体的でわかりやすいかもしれません。


前へ | 次へ