こんにちは。phpを学んでいると、
そう思うことはありませんか?
このお悩みを解決する仕組みとしてプログラミング言語には関数という仕組みがあります。
そこで今回はphpの関数について、入門者の方向けに解説していきます!
関数と聞くと、「昔数学で聞いたことあるなぁ」と思い浮かべるかもしれません。中には数学苦手で関数に嫌悪感を持っている人もいるかもしれません。
ですがご安心ください!この記事では難しいプログラミング用語は一切出てきませんので、ハードルを下げて読んでいただけると幸いです。
目次
関数とは?
関数とはプログラムのある処理をまとめておくことのできる仕組みです。
関数は入力値から値をもらい、指定した処理を実行し、実行結果を出力します。
プログラミングに馴染みのない人向けに表現するのであれば、「工場」のような役割をします。
自動車工場で例えるならば、工場(関数)はパーツ(入力値)をもらい、組み立て(関数内の処理)をして自動車(実行結果)を作るのと同じです。
工場の組み立ての流れをプログラムに置き換えたようなイメージですね!
phpで関数を使ってみる
関数のイメージを掴んだら次は実際にphpで簡単な関数を実装してみましょう。
関数を定義するにはfunctionを使用する
phpで関数を定義するには「function」という構文を使用します。
「function」は日本語訳でも関数という意味を持っています。それでは関数の構文をみていきましょう。
1 2 3 4 5 |
<?php function 関数名 ($引数){ return 戻り値; } ?> |
関数名は任意で設定することができます。
また、引数(ひきすう)には先ほどの自動車の例でいうパーツを、戻り値には自動車を入れるようなイメージです。
引数や戻り値に関しては後述の「引数とは?」を参照してください。
それではサンプルコードをみてみましょう。
1 2 3 4 5 |
<?php function echo_text (){ echo "Hello World!!"; } ?> |
上の「echo_text関数」は引数や戻り値を使わない最も単純な関数で、文字列「Hello World!!」を出力する仕様です。
今回は自動車の例でいうパーツを必要としない仕様なので引数はなくても問題ありません。
このように、自分で名前をつけて作成する関数のことをユーザー定義関数といいます。
関数を実行するには?
実は「function」で関数を作成しても、それはあくまで関数を定義しただけにすぎないので、実行には至りません。
ブラウザを更新しても先ほどの「Hello World!!」は表示されません。関数の内容を実行するためには、定義するのと別で実行するためのプログラムを書く事が必要になります。
それでは実行するための構文をみていきましょう。
1 2 3 |
<?php 関数名 (); ?> |
関数を実行するには、関数名を書いた後に ( ) を書くだけで実行できます。
先ほどのecho_text関数を例にすると、
1 2 3 |
<?php echo_text(); ?> |
1 2 |
// 出力結果 Hello World!! |
となります。
引数とは?
ここでは引数と戻り値についてお話します。
おさらいすると、
・戻り値:関数が処理した後の値
になります。
まずはサンプルの関数をみていきましょう。
1 2 3 4 5 |
<?php function square ($v){ return $v * $v; } ?> |
こちらは引数「$v」に入れた数字を2乗にする関数の例です。そして戻り値は2乗にした数をreturnしています。
これで引数に入れた数を2乗にして出力する関数ができました。それでは実際にいくつかの数字を入れてsquare関数を実行してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php function square ($v){ return $v * $v; } // 関数の実行 echo square(2); echo '<br>'; //改行 echo square(5); echo '<br>'; //改行 echo square(10); ?> |
1 2 3 4 |
// 実行結果 4 25 100 |
今回は定義したsquare関数に「2」「5」「10」を入れてそれぞれ出力してみました。
実行結果から引数に入れた値をそれぞれ2乗にして出力しているのがわかると思います。
このように、関数には引数という仕組みを実装することで任意の値に対して同じ処理を行うことができるんです!
複数の引数を設定することも可能
先ほど引数のお話をしましたが、引数は1つという決まりはありません!
必要に応じて引数を設定できます。
1 2 3 4 5 |
<?php function 関数名($引数1,$引数2,$引数3,...){ return 戻り値; } ?> |
引数を追加する場合は「, (カンマ)」で区切ると追加することができます。
それではサンプルコードをみていきましょう。
1 2 3 4 5 6 7 8 |
<?php // 引数に入れた3つの値を掛け合わせる関数 function multiple ($value_1,$value_2,$value_3){ return $value_1 * $value_2 * $value_3; } // 関数の実行 echo multiple(3,5,9); ?> |
1 2 |
// 実行結果 135 |
サンプルのmultiple関数は3つの引数を掛け合わせて出力する仕様になっています。
今回は引数に「3」「5」「9」を入れてみました。関数を実行すると、3×5×9の135がブラウザに出力されていると思います。
このように、関数に引数を用意した場合は、実行する際も
1 2 3 |
<?php 関数名 (引数1,引数2,引数3,...); ?> |
というように記述して実行できます。
実はもともと用意されている関数も存在
さて、今までは自分で名前をつけて定義するユーザー定義関数を解説してきましたが、実はphpにはもともと実装されている関数もあるんです!
このもともと実装されている関数のことを組み込み関数、またはビルドイン関数と呼びます。
今回はphpの組み込み関数をいくつか紹介します!
1 2 3 4 5 6 7 8 9 |
<?php // サンプルデータ $text = "Hello World!!"; $data = ['text' => $text]; // 出力系 echo ($text); echo "<br>"; //改行 var_dump($data); ?> |
1 2 3 |
// 実行結果 Hello World!! array(1) { ["text"]=> string(13) "Hello World!!" } |
今回は出力系の組み込み関数を紹介します。「えっ?どれ?」と思ったかもしれませんが、みなさんが当たり前のように使っている、テキスト出力の「echo」やデータ出力の「var_dump」はphpの組み込み関数になります。
また、出力系の組み込み関数は ( ) を省いても良いとされているので気づかない人も多いと思います。
これらはphpで予め定義されているため、みなさんが使用する前に「function」で定義する必要はありません。
まとめ
今回はphpでfunctionを用いて関数を定義する方法から使用方法、ビルドイン関数までを解説していきました。
プログラムを書いていくにつれ、関数の便利さが分かってくると思います!
まずは簡単な関数から実装してみて、徐々に色々な機能を関数化してみましょう!