今回はPHPの関数を学んでいきましょう
キャニット先生、関数ってなんですか?
関数は簡単に言えば「特定の処理をまとめておく箱」のようなものです。考え方によっては「変数」と似たようなイメージになっています。
関数を覚えておくと、同じ処理を何度も記述する必要がありません。つまり、プログラミングをするのがとても楽になるのが特徴的です。
楽をするために、新しいことを覚える感じかー。 よくあるやつだね
PHPの学習:関数の使い方と書き方
PHPの関数の学習に入る前に、変数を思い出してください
変数の学習は、PHP基礎編1でやりましたね。
やりましたね。覚えていますよ
……ちょっと復習してこよ
変数は、格納された1つのデータを使い回すために使われるプログラミングでしたが、関数も同じような仕組みで「格納された1まとめの処理を使い回す」ためのプログラミングです。
PHPにおける関数では、予めPHPの中に組み込まれている「組み込み関数」と、ユーザーが独自に作り出す「ユーザー定義関数」の2つがありますが、今回はユーザー定義関数を紹介します。
プログラミングをしていると、同じ処理を何度も何度も使用するというようなことは珍しくありません。その際に関数として処理をまとめておくと、作成した関数を記入するだけで、関数の中にまとめられた処理を全て実行してくれます。
と、関数についての予備知識を得たところで、具体的な書き方と使い方を紹介しますね
PHP:関数の書き方
PHPで関数を使用するときは、「関数を定義する」と「関数を呼び出す」の2つのシーンにわかれます。
この時点で、難しそうな気しかしないぞ
そんなことないですよ。1つずつ説明しますので、きちんと理解してくださいね
関数を定義する
関数を定義する方法は下記の通りです。
Function 関数名(){
関数を呼び出した際に実行する処理;
}
これで関数を定義することが出来ます。
関数を呼び出す
一方、関数を呼び出す際には「関数名();」と入力するだけです。
関数を呼び出した際のプログラムの流れは下記の通りになります。
- 関数を呼び出す
- 呼び出した関数の処理が実行される
意外とシンプルですね
難しそうな名前がついているだけだった
関数を使うメリットと注意点
今説明したような流れでプログラムが進行します。使用頻度の高い処理を関数として定義しておくと、構築する際のプログラミングの行数を大幅に削減することも出来ます。 ただし、作成した関数を管理していないと自分が想定していた結果にならないので十分に注意しなければいけません。
PHP:関数の使い方
続いて、関数の使い方を紹介します
題材は何でも良いのですが……以前に作成したプログラミングを関数として定義して呼び出してみましょうか。
以前に作ったプログラムってどれ?
えーと、これですね
PHP基礎編5のテスト問題の箇所で作ったものです。f見やすくするために最後の行に「echo “<br>”;」を加えた以外はそのまま関数として定義しています。
関数名は「school」として、2回の呼び出しをすると2回分の処理が実行されて画像のように出力されます。 これが関数の基本的な使い方です。
PHPの学習:関数の引数(ひきすう)を学ぼう
引数を使うと同じ処理でも異なる結果を導き出せる
さて、続いては引数の学習です。引数を使うと、同じ関数の処理をしても異なる結果を出せるんですよ
うーん なんか難しいですね
そうですね。 ここはイメージしづらい部分なので、画像で説明しましょうか
引数とは「関数を呼び出す際に渡す値」のことを指しています。画像では赤字で囲まれている部分です。引数を使うと、呼び出した際の引数の値によって結果が異なるようになります。
「80」だと「速度が超過しています」と出て、「60」だと「速度が遅いです」と結果が変わるんですね
引数を使うと結果が異なるプログラムを作れるので、プログラミングの幅は大きく広がります。 もちろん引数の中身を変数にすることも出来ますので、固定値ではなく変動値を引数に設定すれば色々なことが出来ます。
複数個の引数を渡すことも出来る
今、学んだのは引数が1つでしたが、PHPの関数では引数を複数にすることもできるんですよ
複数個の引数を渡したい場合は下記のようにプログラミングします。
このように、引数を入力する部分で「,」を使用するだけなので、何も難しいことはありません。
テスト:関数を作ってプログラミングをしてみよう
さて、では自分で関数を作ってプログラミングをしてみましょうか
関数は「処理をまとめるプログラム」です。だから、「どのような処理が必要なのか」とイメージできていないと使用は難しいかもしれません。
また、関数も変数と同じく「処理をする際に使い回す」ことが目的となので、今回の練習問題は同じ処理が複数回必要な「買い物に関するプログラム」としましょう。
テスト内容
今回のテストで作成するプログラミングの条件は下記の通りです。
- 金額の異なる複数種類の商品を購入した場合の計算処理を、関数を用いて行う
- 消費税は8%とする
- 出力結果として「(商品名)の価格は税込み◯◯円です。」とそれぞれ表示する
ヒントをください
そうですね。 どの部分を関数にしたら楽になるか考えると、プログラミングしやすいかと思いますよ
それでは下記に解答を画像で紹介します。
テストの答え合わせ
こちらが答えです。
関数化したのは「各商品の計算と出力する」という処理です。
こちらのプログラムを見て気づいた方も居るかも知れませんが、実はこの処理はfor文またはforeach文で連想配列を使用すれば作成することが出来ます。
今回のように関数を使用するメリットとしては、「管理する商品数が増えたとしても、関数を呼び出すだけで処理ができる」ことにあります。
PHPの関数:まとめ
というわけで、今回の講義ではPHPの関数について学習をしました。どうでしたか?
関数って名前がよくないよね。それだけで難しそうだもん
なるほど……。 今更、名前を変えるのは無理でしょう(笑)
僕は、関数は便利なものなのかなぁ、という印象でした。 使いこなせたら、いろいろなことができそうです
牛山くんはいいところに気付きましたね。今回の講義で学んだような少ない処理ではなく、もっと膨大な処理をするときには関数がとても役立つんですよ
さて、次回は少し変化球となりますが、「乱数」について学習します。 「ランダムに生成される」を覚えておくと色々と便利で、ちょっとした遊びも出来ます。