プログラムを書いていると、同じプログラムや別のプログラムで使うことのできる
共通の処理をまとめておきたいことがあります。
ここでは、PHP における「ユーザ定義関数」の使い方についてまとめています。
ユーザ定義関数とは
PHP では、これまで紹介してきた PHP 独自の関数(組込み関数)とは別に、
プログラムの作成者自身が作ることができる関数があります。
その関数が、ユーザ定義関数です。
ユーザ定義関数は、PHP の組込み関数と同様に
必要な時にその関数を呼び出して実行したい処理を行うことができます。
また、そのユーザ定義関数の処理に変更があったときは、呼び出し元が何か所あっても
関数内だけ変更すればよく、管理や保守がとても楽になります。
ユーザ定義関数の作成(function)
ユーザ定義関数は「function」というキーワードを使って、以下のような構文で作成します。
引数をもつ関数を定義する構文
function 関数名([引数1][, 引数2][,引数3...]) {
// ここに処理を書く
}
引数とは、関数に渡したい値や変数のことです。
関数に渡したい引数の数は、プログラムの作成者が決めます。
また、引数を使用しない関数を定義することもできます。
引数をもたない関数を定義する構文
function 関数名 () {
// ここに処理を書く
}
ユーザ定義関数は、関数内で「return 戻り値;」と記述することで、
関数を処理した結果を返すことができます。
戻り値をもつ関数を定義する構文
function 関数名 () {
// ここに処理を書く
return 戻り値;
}
ユーザ定義関数の呼出し
呼出すときは、関数名(引数); の形で呼び出します。
1 2 3 4 5 6 7 8 |
my_test("PHP"); function my_test($str) { echo $str; } my_test("Function"); |
上記のようなコードを書いた場合、ブラウザには「PHPFunction」と出力されます。
関数を定義する位置と呼出しの順序は、どちらが先でも問題はありません。
戻り値のあるユーザ定義関数を記述した場合は、以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php function my_inc($num) { if (is_numeric($num)) { return $num + 1; } else { return "数値ではありません"; } } echo "<br />1=>" . my_inc(1); echo "<br />2=>" . my_inc(2); echo "<br />3=>" . my_inc(3); echo "<br />PHP=>" . my_inc("PHP"); ?> |
出力結果
1=>2
2=>3
3=>4
PHP=>数値ではありません
付録:ユーザ定義関数でPHP組込み関数の差分を吸収
PHP のバージョンアップによって、既存の組込み関数を使えなくなったりすることがあります。
セキュリティの関係で、削除されるものが出てくるのです。
そこで役に立つのが、ユーザ定義関数で差分を吸収するラッパー関数を用意するということです。
詳しくは、以下にまとめていますので参考にどうぞ。