Pages

Subscribe:

2011-11-09

PHPの基礎~関数(ユーザ定義関数)

今回は関数(ユーザ定義関数)についてまとめます。
関数というと数学が苦手だった自分は少々拒絶反応が起こるのですが…
数学のそれとは別ものです。
これもプログラム特有の、処理を短く収めるための置き換えのひとつです。

まずは関数とは何ぞやという話です。
PHPで使われる関数というのは、
ある処理を行うプログラムをひとつの部品として定義して
必要に応じて使えるようにしたものです。

関数とは

言葉で説明するのが難しいのですが、
概念的には変数をすごく拡大した感じでしょうか。
変数の中に値を入れたように、関数の中にはひとつの処理を入れておくというような
イメージです。
プログラムの中で同じような処理を何度も行うような場合、
関数をひとつ作っておけば、あとは必要なときにそれを呼び出して使い、
最終的にプログラムをスッキリまとめることができます。

PHPにはもともと用意されている関数というものがあります。
それらは「組み込み関数」などと呼ばれ、
例えばこれまで頻繁に使ってきた「echo」や「print」などもそのひとつです。
数がとても多く、すべてを覚えるのはたぶん無理ですが、
これらを必要なときに活用できるようになるとプログラムの幅を広げる
ことができるようになります。

今回は用意されているものとは別に
自分で作る関数、「ユーザ定義関数」について説明をしていきますが、
関数の構造がわかると、今後組み込み関数を利用するのにも
役に立つと思います。

関数の定義

基本的な形は以下の通りです。
function 関数名( 第一引数,第二引数,… ) {
        部品化する処理;
        return 戻り値;
} 
関数を定義するためには「function」という単語が使われます。
この「function」で関数を定義することを明示し、
次にその関数の名前を表記します。

関数の名前についてはいくつかルールがあります。
  • 大文字小文字を区別しない
  • PHPの予約語(PHPの中で意味をもつ単語:echoやifなど)と重複するとエラーになる
  • 同じ名前の関数を定義するとエラーになる(変数のように再定義ができない)

そのような理由から、関数の名前は長くなりがちなので、
暗黙のルールのようなものが存在します。
「plusTwoNumbers」というように、単語のつなぎ目の頭を大文字にするのが
関数名によく使われる名前のつけ方です。
その関数が何をするのかが分かるように名前をつけるのが一般的且つ
他人が見ても分かりやすいようです。
この例ではふたつの数字を足す関数だということが分かります。


関数名のあとにあるカッコの中には「引数(ひきすう)」といわれる値が入ります。
関数の中には部品化された処理が書かれていてそれを実行することに
なるのですが、引数はその処理をしてもらうため関数に受け渡す値です。
引数は変数の形で、関数の中の処理に必要な値の分だけ定義され、
左から第一引数、第二引数、第三引数のように数えられます。
また、処理に引数が必要ない場合は定義する必要はありません。

引数とは


処理のあとに「return」とともに「戻り値」というものを表記します。
戻り値は関数の処理が行われた結果で、関数を呼び出したプログラムにそれを受け渡します。
その振る舞いを「結果を返す(戻す)」などと言います。
これも引数と同じで関数によって結果を返す必要がない場合は
戻り値を設定する必要はありません。

動きを図に書いてみました。
だいたいこんな感じというのがつかめるでしょうか…

関数はそれだけでは意味を成しません。
あくまでもプログラムの中で行いたい処理が先にあり、
同じ処理が重複してプログラムが冗長になるのを避けるために
その重なる部分を関数にまとめて利用します。
最初に書いたとおり、関数はプログラムの中の部品なのです。

少し長くなってしまったので使い方は次回に持ち越します。
最初は説明を聞いてもなんのこっちゃよく分かりません。
関数は実際に使ってみないといったいどんなものなのかの全容がつかめない
と思うので、使ってみて感覚をつかんでいければと思います。

0 件のコメント:

コメントを投稿