PHP基礎編8:頻繁に使う処理は関数としてまとめよう

PHP入門
CANIT先生
CANIT先生

今回はPHPの関数を学んでいきましょう

牛山くん
牛山くん

キャニット先生、関数ってなんですか?

関数は簡単に言えば「特定の処理をまとめておく箱」のようなものです。考え方によっては「変数」と似たようなイメージになっています。

関数を覚えておくと、同じ処理を何度も記述する必要がありません。つまり、プログラミングをするのがとても楽になるのが特徴的です。

猫田さん
猫田さん

楽をするために、新しいことを覚える感じかー。 よくあるやつだね

PHPの学習:関数の使い方と書き方

パソコン
CANIT先生
CANIT先生

PHPの関数の学習に入る前に、変数を思い出してください

変数の学習は、PHP基礎編1でやりましたね。

牛山くん
牛山くん

やりましたね。覚えていますよ

猫田さん
猫田さん

……ちょっと復習してこよ

変数は、格納された1つのデータを使い回すために使われるプログラミングでしたが、関数も同じような仕組みで「格納された1まとめの処理を使い回す」ためのプログラミングです。

PHPにおける関数では、予めPHPの中に組み込まれている「組み込み関数」と、ユーザーが独自に作り出す「ユーザー定義関数」の2つがありますが、今回はユーザー定義関数を紹介します。

プログラミングをしていると、同じ処理を何度も何度も使用するというようなことは珍しくありません。その際に関数として処理をまとめておくと、作成した関数を記入するだけで、関数の中にまとめられた処理を全て実行してくれます。

CANIT先生
CANIT先生

と、関数についての予備知識を得たところで、具体的な書き方と使い方を紹介しますね

PHP:関数の書き方

学習

PHPで関数を使用するときは、「関数を定義する」と「関数を呼び出す」の2つのシーンにわかれます。

猫田さん
猫田さん

この時点で、難しそうな気しかしないぞ

CANIT先生
CANIT先生

そんなことないですよ。1つずつ説明しますので、きちんと理解してくださいね

関数を定義する

関数を定義する方法は下記の通りです。

Function 関数名(){

関数を呼び出した際に実行する処理;

}

これで関数を定義することが出来ます。

関数を呼び出す

一方、関数を呼び出す際には「関数名();」と入力するだけです。

関数を呼び出した際のプログラムの流れは下記の通りになります。

  1. 関数を呼び出す
  2. 呼び出した関数の処理が実行される
牛山くん
牛山くん

意外とシンプルですね

猫田さん
猫田さん

難しそうな名前がついているだけだった

関数を使うメリットと注意点

今説明したような流れでプログラムが進行します。使用頻度の高い処理を関数として定義しておくと、構築する際のプログラミングの行数を大幅に削減することも出来ます。 ただし、作成した関数を管理していないと自分が想定していた結果にならないので十分に注意しなければいけません。

PHP:関数の使い方

エンジニア
CANIT先生
CANIT先生

続いて、関数の使い方を紹介します

題材は何でも良いのですが……以前に作成したプログラミングを関数として定義して呼び出してみましょうか。

猫田さん
猫田さん

以前に作ったプログラムってどれ?

CANIT先生
CANIT先生

えーと、これですね

PHP基礎編5のテスト問題の箇所で作ったものです。f見やすくするために最後の行に「echo “<br>”;」を加えた以外はそのまま関数として定義しています。

関数名は「school」として、2回の呼び出しをすると2回分の処理が実行されて画像のように出力されます。 これが関数の基本的な使い方です。

PHPの学習:関数の引数(ひきすう)を学ぼう

独学 女性

引数を使うと同じ処理でも異なる結果を導き出せる

CANIT先生
CANIT先生

さて、続いては引数の学習です。引数を使うと、同じ関数の処理をしても異なる結果を出せるんですよ

牛山くん
牛山くん

うーん なんか難しいですね

CANIT先生
CANIT先生

そうですね。 ここはイメージしづらい部分なので、画像で説明しましょうか

引数とは「関数を呼び出す際に渡す値」のことを指しています。画像では赤字で囲まれている部分です。引数を使うと、呼び出した際の引数の値によって結果が異なるようになります。

牛山くん
牛山くん

「80」だと「速度が超過しています」と出て、「60」だと「速度が遅いです」と結果が変わるんですね

引数を使うと結果が異なるプログラムを作れるので、プログラミングの幅は大きく広がります。 もちろん引数の中身を変数にすることも出来ますので、固定値ではなく変動値を引数に設定すれば色々なことが出来ます。

複数個の引数を渡すことも出来る

CANIT先生
CANIT先生

今、学んだのは引数が1つでしたが、PHPの関数では引数を複数にすることもできるんですよ

複数個の引数を渡したい場合は下記のようにプログラミングします。

このように、引数を入力する部分で「,」を使用するだけなので、何も難しいことはありません。

注意点は、関数を定義する際に複数個の引数を渡されるように設定した場合は、関数を呼び出す際にも複数個の引数を渡さなければいけない点です。 そうしないとエラーになってしまうので、注意してください。

テスト:関数を作ってプログラミングをしてみよう

女性
CANIT先生
CANIT先生

さて、では自分で関数を作ってプログラミングをしてみましょうか

関数は「処理をまとめるプログラム」です。だから、「どのような処理が必要なのか」とイメージできていないと使用は難しいかもしれません。

また、関数も変数と同じく「処理をする際に使い回す」ことが目的となので、今回の練習問題は同じ処理が複数回必要な「買い物に関するプログラム」としましょう。

テスト内容

今回のテストで作成するプログラミングの条件は下記の通りです。

  • 金額の異なる複数種類の商品を購入した場合の計算処理を、関数を用いて行う
  • 消費税は8%とする
  • 出力結果として「(商品名)の価格は税込み◯◯円です。」とそれぞれ表示する
猫田さん
猫田さん

ヒントをください

CANIT先生
CANIT先生

そうですね。 どの部分を関数にしたら楽になるか考えると、プログラミングしやすいかと思いますよ

それでは下記に解答を画像で紹介します。

テストの答え合わせ

こちらが答えです。

関数化したのは「各商品の計算と出力する」という処理です。

こちらのプログラムを見て気づいた方も居るかも知れませんが、実はこの処理はfor文またはforeach文で連想配列を使用すれば作成することが出来ます。

今回のように関数を使用するメリットとしては、「管理する商品数が増えたとしても、関数を呼び出すだけで処理ができる」ことにあります。

for文やforeach文で作成していると、ループ回数や項目などにも目を通さなければいけませんので管理が大変になるでしょう。しかし、 関数だと引数の部分を変更するだけなので管理しやすくなります。

PHPの関数:まとめ

パソコン
CANIT先生
CANIT先生

というわけで、今回の講義ではPHPの関数について学習をしました。どうでしたか?

猫田さん
猫田さん

関数って名前がよくないよね。それだけで難しそうだもん

CANIT先生
CANIT先生

なるほど……。 今更、名前を変えるのは無理でしょう(笑)

牛山くん
牛山くん

僕は、関数は便利なものなのかなぁ、という印象でした。 使いこなせたら、いろいろなことができそうです

CANIT先生
CANIT先生

牛山くんはいいところに気付きましたね。今回の講義で学んだような少ない処理ではなく、もっと膨大な処理をするときには関数がとても役立つんですよ

さて、次回は少し変化球となりますが、「乱数」について学習します。 「ランダムに生成される」を覚えておくと色々と便利で、ちょっとした遊びも出来ます。

挫折率が高い??プログラミング学習のポイント
駆け出しエンジニアが一緒に学ぶ
CANITは、Progateやドットインストールで独学している人達同士をつなげます。駆け出しエンジニアのあなたのためのSNSです。
PHP入門
【この記事を書いた人】
CANIT 先生

あらゆるプログラミング言語をあやつるフリーの凄腕講師。温和な性格で「わかるまで教えます」がモットー。たまに時間ができると動物の仲間達に、プログラミングを教えることもある。現在の生徒は牛山くんと猫田さん。

CANIT
タイトルとURLをコピーしました