【PHPの基礎知識⑤】ユーザー定義関数
function(ユーザー定義関数を定義する)
ユーザー定義関数はfunctionを使って定義します。
function 関数名([パラメータ]) {
処理
}
処理
}
使用例
- 関数を定義するfunction TEST() {
echo "あいうえお";
}
TEST(); →「あいうえお」を出力
test(); →「あいうえお」を出力関数名は大文字と小文字が区別されません。関数名の後ろの括弧を付け忘れると定数と認識されエラーになります。
- パラメータ付きで関数を定義するfunction TEST($str) {
echo $str;
}
$str = "あいうえお";
TEST($str); →「あいうえお」を出力<解説>
関数にパラメータを指定するときは、括弧の中にパラメータを記述します。2つ以上のときは、カンマ(,)で区切り「$str,$str2,$str3」のように記述します。 - 参照渡しパラメータで関数を定義するfunction TEST(&$str) {
$str = "パラメータは、" . $str ."です。";
}
$str = "あいうえお";
TEST($str);
echo ($str); →「パラメータは、あいうえおです。」を出力<解説>
関数でパラメータを指定するときは通常、値を渡す形になります。参照渡しでパラメータを指定するときは、「&」をつけて「&$str」のように指定します。参照渡しでパラメータを渡すと、関数内で変数を変更することができます。この例では、変数$strの値は「あいうえお」でしたが、関数内で値が変更されています。 - パラメータの既定値を指定した関数を定義するfunction TEST($str = "abc") {
echo $str;
}
TEST(); →「abc」を出力
return(関数の戻り値を返す)
return(戻り値)
使用例
- 関数から戻り値を取得するfunction test($str) {
$str .= "を受け取りました。";
return $str;
}
$result = test("abc");
echo $result; →「abcを受け取りました。」を出力
- 関数から複数の戻り値を取得するfunction test($int) {
$result1 = $int * 2;
$result2 = $int * 3;
$result3 = $int * 4;
return array($result1, $result2, $result3);
}
$result = test(10);
print_r($result);
出力結果 Array([0]=>20 [1]=>30 [2]=>40)
戻り値に配列を使うと、複数の値を返すことができます。
- 条件に応じて戻り値を切り替えるfunction test($int) {
if ($int > 50) {
return TRUE;
} else {
return FALSE;
}
}
$result = test(100); →$resultにTRUEをセットひとつの関数内に複数のreturn文を含めることができます。この例では、条件に応じて異なる値を返しています。
可変関数
変数名の後に括弧をつけることで、関数名を動的にセットすることができます。
使用例
- 可変変数を使用するfunction test() {
echo "あいうえお";
}
$str = "test";
$test(); →「あいうえお」を出力<解説>
この例では「$str」+「()」という形式で呼び出されており、変数$strには「test」という値がセットされているので、関数testが呼び出されます。 - 可変変数で処理を分岐するfunction update_db() {
更新処理
}
function insert_db() {
挿入処理
}
function delete_db() {
削除処理
}
$action = $_POST["action"];
$action .= "_db";
$action(); →関数(例:update_db)を実行<解説>
関数名を動的に取得する可変関数を使用して、処理を分岐する例です。フォームから、どの処理を実行するかを示す文字列「$_POST["action"]」を受け取り、この値を使って関数名を組み立てます。実行する処理ごとに異なる文字列を隠し項目などにセットしておくと、この文字列をもとに実行する処理を分岐できます。
関連リンク
PHPトップページ
PHP入門 & 関数リファレンス
PHPの初心者からベテランまで活用できるページです。初めての方はもちろん、もう一度基礎から学びなおしたい方は、基礎知識のページを順に読んで理解しましょう。ベテランの方向けには、関数の書式・パラメーターを調べられる構成になっています。PHPプログラム作成時にご活用下さい。