【PHPの基礎】関数
PHP「関数」の基礎知識について学習します。
関数とは
関数とはいくつかの処理をひとまとめにして入れておける箱のようなものです。
よく使う処理を関数として定義しておくことで、必要な時にその処理を取り出すことができます。
関数の種類
大別すると関数には2種類あります。
組み込み関数
「組み込み関数」とは、phpであらかじめ用意されている関数のことです。
PHPマニュアルの関数リファレンスなどで用途にあうものがあるか調べることができます。
ユーザー定義関数
関数を書くことを、関数を定義するといいます。
「ユーザー定義関数」とは、ユーザーが自分で定義する関数のことです。
この記事では主に「ユーザー定義関数」について学習していきます。
関数の書き方
最小限の記述で定義したシンプルな関数
1 2 3 4 5 6 7 8 |
<?php // 関数を定義 function 関数名() { 処理内容 } // 関数を呼び出す 関数名(); ?> |
関数を定義する際には、最初に「function」と記述します。
functionの後に半角スペース、任意の関数名、()を記述し
{ }内に処理の内容を記述します。
関数を呼び出す際には関数名();と記述します。
サンプルコード
1 2 3 4 5 6 |
<?php function greeting() { echo 'Hello World'; } greeting(); ?> |
実行結果
引数を使う
関数に対して値を渡すこともできます。この値のことを「引数」といいます。
引数を使う場合は以下のように記述します。
1 2 3 4 5 6 7 8 |
<?php // 関数を定義 function 関数名(引数) { 処理内容 } // 関数を呼び出す 関数名(引数); ?> |
サンプルコード
1 2 3 4 5 6 |
<?php function greeting($yourname) { echo 'こんにちは'. $yourname. 'さん。'; } greeting('田中'); ?> |
実行結果
引数には厳密には以下の2種類あります。
関数を定義しているところに書いてある引数(サンプルでは$yourname)を仮引数(parameter)といいます。
関数を呼び出しているところに書いてある引数(サンプルでは’田中’)を実引数(argument)といいます。
引数を複数渡す
引数は複数渡すことができます。
複数の引数を渡す場合は、引数の間に ,(カンマ)を入れます。
サンプルコード
1 2 3 4 5 6 7 8 |
<?php function greeting($yourname, $me) { echo 'こんにちは'. $yourname. 'さん。<br>'; echo '私の名前は'. $me. 'です。'; } greeting('田中', '山田'); ?> |
実行結果
私の名前は山田です。
注意点
引数が複数ある場合、仮引数と実引数のそれぞれの場所はリンクさせます。
仮引数の順番通りに実引数を指定しないと意図しない実行結果になってしまいます。
引数にデフォルト値をもたせる
引数には、引数が渡されなかった場合のデフォルト値を設定することができます。
下記の例では、関数の呼び出し時に第二引数を渡した方は”山田”が出力され、
引数を渡さなかった方は”デフォルト値 名無し”が出力されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php // 第一引数:$me 第二引数:$yourname // 関数を定義 function greeting($me, $yourname = '名無し') { echo 'こんにちは'. $yourname. 'さん。<br>'; echo '私の名前は'. $me. 'です。<br><br>'; } // 関数を呼び出す // 第一引数:$山田 第二引数:$田中 greeting('山田', '田中'); //引数を渡す greeting('山田'); //引数を渡さない ?> |
実行結果
私の名前は山田です。
こんにちは名無しさん。
私の名前は山田です。
注意点
デフォルト値を設定する場合は、デフォルト値を持つ引数を、デフォルト値を持たない引数よりも後(右)に書かなくてはいけません。
return 返り値(戻り値)
返り値(戻り値)とは、関数で処理して得られる結果のことです。
返り値は以下のように指定します。
1 2 3 4 |
function 関数名() { 処理内容 return 返り値; } |
サンプルコード
1 2 3 4 5 6 7 8 |
<?php function name(){ return '太郎'; } $name=name(); echo '私の名前は'.$name.'です'; ?> |
実行結果
引数を使ったサンプルコード
1 2 3 4 5 6 7 8 9 |
<?php function tashizan($num1,$num2) { return ($num1 + $num2); } $answer = tashizan(10,5); echo $answer; ?> |
実行結果
返り値は必ず定義しなければいけないわけではありませんが、返り値を利用することで表示方法や処理を変更したりと幅が広がります。
まとめ
「関数」は、処理をひとまとめにして入れておける箱のようなものです。
関数は、値を渡す(引数)と、処理を行い、値を返す(返り値)という動きをします。
「関数」「引数」「返り値」はセットで覚えておきましょう。