ユーザー定義関数 |
|
PHPはあらかじめ用意されているたくさんの関数を使用して作成します。(参考URL:PHPマニュアル) |
関数は膨大な数ありますが、全て把握しなくても実現したい機能があるとき、その都度調べて理解すればOKです。 |
今回は自分で関数を定義する「ユーザー定義関数」について説明します。 |
|
■関数定義 |
|
プログラムは色々な処理を含みます。例えば、「ユーザーに値が入力されたらこうする、エラーがあったらこうす |
る、なかったらこうする、処理を終了する」(これで一つの動作のかたまり)という風にプログラム
|
は始まり→処理→終了 といった流れをとります。その中で、同じような処理も出てくるはずです。それを毎回 |
記述するのは非効率的ですよね。コードも長くなって見づらいと思います。 |
そのため、何度も出てくる処理を関数化しよう、というのが「ユーザー定義関数」なのです。 |
|
・関数を定義するfunction |
関数とは、これまで使用してきたように、一つのかたまりとして処理をするためのプログラムです。ユーザーの操作に応じて結果を返します。
自分で関数を定義する場合、functionというステートメントを使用します。記述方法は以下の通りです。 |
function
関数名() {
処理に必要なプログラム
} |
|
・関数の戻り値 |
関数内のスクリプトで処理されて、結果戻り値が必要な場合はreturnステートメントを使用します。 |
function test() {
return(戻り値);
} |
実際の使用例です。
|
例: |
<?php
function test($value)
{
//testという名前の関数を定義しています。
return $value = $value +
10; //$answerに関数の引数+10の値を入れています。
}
$a = 5;
print test($a);
//関数を使用し、戻り値を表示します。
?> |
functionでtestという名前の関数を定義します。引数には中のスクリプト(今回は10を足す)で使用する変数を定義します。 |
returnを使用し、変数$valueに格納した$value+10の結果を関数の外に戻り値として返します。 |
最後に関数を使用します。PHPにあらかじめ用意された関数と同じように、関数名(値)
で使用します。
|
 |
このような流れで処理されています。イメージをしっかり掴んでおきましょう。 |
|
・引数の値渡し |
上のプログラムの@で引数に値を渡していますね。この場合、$aを$valueとして処理しています。 |
この$aは関数で処理されて15となりますね。では以下のように記述してみるとどうなるでしょうか。 |
例: |
<?php
function test($value) {
return $value = $value +
10;
}
$a = 5;
print test($a);
//関数で処理して結果を表示
print "<br>".$a;
//改行して$aをそのまま表示する。
?> |
最初の変数$aは関数で処理されたので15、次の$aは5のままですね。これを「引数の値渡し」といい、 |
一度関数を通しても元の変数自体には関数内の処理は影響しないのです。
|
|
・引数の参照渡し |
次のように引数に「&」(アンパサンド)をつけると、「参照渡し」となり、引数として渡された変数自体の値を変化させることができます。 |
例: |
<?php
function test(&$value) { //&
をつける
return $value = $value +
10;
}
$a = 5;
print test($a);
//関数で処理して結果を表示
print "<br>".$a;
//改行して$aをそのまま表示する。
?> |
上の結果は、両方15です。そのまま表示しても参照渡しで関数を通したため$aの値は変化しています。
|
|
・引数のデフォルト値
|
「デフォルト値」を指定すると、引数の値を最初に指定することができます。
|
例:
|
<?php
function test($value = 5) { //$valueの値を5に指定する
return $value = $value +
10;
}
print test();
//関数を実行。デフォルト値があるので引数はいらない。
?>
|
指定したデフォルト値で関数が実行されます。
|
|
以上で基本的なPHPの記述方法は終わりです。もちろんこの他にも沢山関数や記述方法がありますが
|
その都度実践で覚えていきましょう。
|
|
|