PHPで引数を理解することは、絶対に必要なことです。引数を理解できて、初めてPHPプログラミングのスタートラインに立てると言っても過言ではありません。
そこで本記事では、PHPプログラミング初心者向けに、引数についてわかりやすく解説していきます。これからPHPを学びたいと考えているのであれば、ぜひご覧ください。
PHPにおける引数とは
PHPで関数を使う際、渡す値のことを引数といいます。PHPの関数は引数がなくても使用できますが、引数を渡すことで、情報に応じた処理が実現可能になります。関数内の処理によって、引数を渡すべきかどうかを使い分けると良いでしょう。
例えば、引数を渡す関数の使い方として、引数に応じた処理を関数内で行い、結果を戻り値(返り値)として返すなどの処理が考えられます。具体的には、購入する商品名を引数として関数に渡すことで、対象商品の値段を戻り値として返す関数などで利用できますね。
引数を上手く活用することで、関数化していなかった処理を関数化できたり、同じような関数を一つにまとめることができます。
PHPの関数で引数を使う方法
それでは、実際にPHPの関数に引数で値を渡した処理の書き方について解説していきます。例として、関数の引数に商品名を渡すことで、戻り値に商品価格を返すサンプルコードをみていきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php //関数の定義 function calc($food){ $price = 0; //引数によって分岐 if($food == '和食セット'){ $price = $price + 700; }elseif($food == '洋食セット'){ $price = $price + 750; }elseif($food == 'カレーライス'){ $price = $price + 500; }elseif($food == '唐揚げ'){ $price = $price + 300; }elseif($food == 'パフェ'){ $price = $price + 350; }else{ echo 'エラー'; exit(0); } //戻り値として返す return $price; } //関数を実行 $value = calc('和食セット'); echo '価格は'.$value.'円です。'; echo '<br>'; ?> |
上記コードでは、関数calcの引数として「和食セット」を渡しました。その結果、関数calc内の処理によって、「和食セット」の価格「700円」を変数に格納し、戻り値として返しています。
なお、呼び出し時の引数には、値を代入した変数や配列を指定することもできます。関数と引数を上手く利用して、効率の良いプログラミングができるようになりましょう。
PHPの関数に複数の引数を渡す方法
PHPの関数には、複数の引数を渡すこともできます。実際に、PHPの関数に複数の引数を渡した処理の書き方についてもみていきましょう。
例として、関数の引数に商品とは別に、滞在時間を渡すことで、戻り値に商品価格と席料金の合計値を返すサンプルコードに変更してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<?php //関数の定義(複数の引数を設定) function calc($food, $time){ $price = 0; //第一引数(商品)によって分岐 if($food == '和食セット'){ $price = $price + 700; }elseif($food == '洋食セット'){ $price = $price + 750; }elseif($food == 'カレーライス'){ $price = $price + 500; }elseif($food == '唐揚げ'){ $price = $price + 300; }elseif($food == 'パフェ'){ $price = $price + 350; }else{ echo 'エラー'; exit(0); } //第二引数(滞在時間)によって分岐 if($time <= 60){ $price = $price + 0; }elseif($time <= 90){ $price = $price + 50; }elseif($time <= 120){ $price = $price + 150; }elseif($time <= 150){ $price = $price + 300; }else{ echo '時間超過'; exit(0); } //戻り値として返す return $price; } //関数を実行 $value = calc('和食セット', 80); echo '価格は'.$value.'円です。'; echo '<br>'; ?> |
上記コードでは、関数calcの引数として「和食セット」と「80分」を渡しました。その結果、関数calc内の処理によって、「和食セット」の価格「700円」と、滞在時間「80分」の席料金「50円」の合計値を変数に格納し、戻り値として返しています。
商品価格を求める関数と席料金を求める関数を分けて書くこともできますが、複数の引数を渡すことで1つの関数にまとめることが可能になります。
多くの処理で流用される関数であれば、まとめてしまうと他の処理に影響が出てしまいます。しかし、関数を利用する処理が決まっているのであれば、1つの関数にまとめてしまった方が、ソースを追いやすくなります。
PHPの関数に引数のデフォルト値を設定する方法
PHPの関数に引数を渡すときには、引数のデフォルト値を設定することもできます。
例として、関数の引数に商品「パフェ」と滞在時間「75分」をデフォルト値として設定し、引数を指定せずに関数を実行してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<?php //関数の定義(引数のデフォルト値を設定) function calc($food = 'パフェ', $time = 75){ $price = 0; //第一引数(商品)によって分岐 if($food == '和食セット'){ $price = $price + 700; }elseif($food == '洋食セット'){ $price = $price + 750; }elseif($food == 'カレーライス'){ $price = $price + 500; }elseif($food == '唐揚げ'){ $price = $price + 300; }elseif($food == 'パフェ'){ $price = $price + 350; }else{ echo 'エラー'; exit(0); } //第二引数(滞在時間)によって分岐 if($time <= 60){ $price = $price + 0; }elseif($time <= 90){ $price = $price + 50; }elseif($time <= 120){ $price = $price + 150; }elseif($time <= 150){ $price = $price + 300; }else{ echo '時間超過'; exit(0); } //戻り値として返す return $price; } //関数を実行 $value = calc(); echo '価格は'.$value.'円です。'; echo '<br>'; ?> |
上記コードでは、関数calcの引数に何も指定せずに実行しました。しかし、関数calcのデフォルト値として、商品「パフェ」と、滞在時間「75分」が設定されているため、商品価格「350円」と席料金「50円」の合計値が戻り値として返ってきました。
必要に応じて関数のデフォルト値を設定することで、エラーを防ぐことができる場合もあります。ただし、コードの書き方に問題があった場合、エラーに気づかない原因にもなるので、デフォルト値を設定する際には、十分注意するようにしましょう。
まとめ
PHPの関数は、引数を使わずに使用することもできますが、引数を使うことで活躍の場が広がります。
使い方は簡単で、関数使用時に引数に使いたい値や変数、配列を指定するだけです。なお、引数の複数指定や、引数のデフォルト値設定もできます。
PHPのプログラミングをする上で、関数と引数は基本中の基本であり、絶対に必要な知識です。
もしもPHPでの引数の使い方を理解できていないのであれば、もう一度本記事を読み直すことをおすすめします。