PHP - BASIC - 12. PHPのユーザ定義関数 - 1. ユーザ定義関数

これまでに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 関数名(引数1, 引数2) {
  // 処理
  return 戻り値;
}

関数を定義する際には function キーワードと関数名を記述します。関数名の後ろには () の中に受け取る引数を定義し、 {} の中に関数の処理を記述します。また処理の中では return キーワードによって戻り値を指定できます。

引数や戻り値( return キーワード)は省略可能です。引数を複数受け取る場合は , で区切って定義します。

それではあらためてプログラム( func1.php )について確認していきましょう。

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

ここでは function キーワードの後に関数名 calc を指定し、 () の中に引数 $price を定義しています。 calc 関数の処理ブロック {} の中では $result = $price * 1.10; 税率を掛け合わせた後 return $result; と記述することで、 $result 変数に代入されているデータを戻り値として返却しています。

function キーワードで定義した関数は、組み込み関数と同様に必要なタイミングでいつでも呼び出すことができます。 次に calc 関数の呼び出し部分を見てみましょう。

$price1 = calc(100);

定義した関数を呼び出す際には、まず関数名と引数 calc(100) を記述します。 calc 関数は1つの引数( $price )を受け取るように定義していたので上記のように calc(100) と記述できます。また calc 関数を呼び出すと戻り値が返却されるので、関数呼び出し calc(100) の前に変数 $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 のような名前の方が具体的でわかりやすいかもしれません。

まとめ

  • 自作する関数のことをユーザ定義関数と呼ぶ
  • 関数を定義するにはfunctionキーワードを使う
  • 関数を定義することで、再利用性、可読性、メンテナンス性を高めることできる