プログラミングにおける関数とは?基礎知識を解説

この記事は5分で読めます

自分用メモ

(1)プログラミングとは「社長」になること

自分が「機械に命令」を行うことで、「機械に仕事」をさせる事ができる。
これは、自分が「会社の社長」になってるようなもの。

自分が会社の社長として「変数」という「箱(書類入れ)」を用意して、
「関数」という「人」を雇い、
様々な関数くん達に仕事をさせるようなもの。

(2)関数は何ができる?

①複数の命令をまとめて名前をつける

関数の最も基本的な機能。
複数の命令を1つのまとめて(命令群)、その命令群に名前(関数名)を付ける。

名前を付けた命令群は、「関数名()」と書くことで呼び出す事ができる。
関数を呼び出すと、関数の中に記述した命令群が実行される。
関数の呼び出しは何度でも可能。

この画像では、挨拶を表示する命令群に「sayHello」という名前を付けている。
関数の名前の後にカッコを付ける(sayHello()とする)事で、
一連の命令を呼び出す事ができる。


まとめると以下のようになる。

functionの後に半角スペースを空ける
好きな関数名をつける
その後にカッコをつける
波括弧{}で囲って、その中に好きな処理を書く
関数名、カッコ、セミコロン(;)を書いて、書いた処理を出力する。


②値を受け取って処理する

関数は、ただ命令をまとめるものだけではない。
関数は呼び出す時に、いくつかの値を受け取る事ができる。
受け取った値を処理し、実行結果に反映させる事ができる。

この受け取る値を「引数」と呼ぶ。
上記の画像では、変数xと変数yが引数になる。

引数を使う事で、実行ごとに異なる処理を行う事もできる。
上記の画像では、足す数を引数にすることで、
「1+2」の場合でも、「3+4」の場合dめお、
同じ関数を使う事が出来るようになっている。

引数を活用することで、
柔軟なプログラムを書く事が可能となる。

引数はいくつでも渡す事ができる。
複数の引数を渡したい場合は、カンマ(,)で区切って
好きな名前の受け取り用の箱(変数)を用意する。
この箱は、関数の中だけで使える箱(ローカル変数という)になる。

ーーーーーーーーーーーーーーーーーー

人で例えるなら、社長である自分が
社員である関数くんに値(情報)を与えて、
「これで仕事よろしく!」と頼む。


そして、関数くんは「分かりました!」と、
与えられた情報を「引数」という
「自分専用の箱(職場のファイルみたいなもの)」に
その情報を入れて、自分の仕事を進めていく、と考える。


ーーーーーーーーーーーーーーーーーー

基本的に、引数分の情報を与えてあげなければ、
関数くんは仕事をしてくれない(エラーになってしまう)ので注意が必要。
ただ、この点はプログラミング言語によって微妙に異なる。

上記の画像の場合、社員(関数sumFuncくん)は、
2つの情報をくれないと仕事は出来ません!
それぞれの情報は僕専用のx, yという箱(ファイル)に入れるからね!

という感じになる。お役所のような人。





③値を返す


関数が値を返すと、関数呼び出し(ここでは「sum();」を指す)は
その返した値に書き換えられて処理が進む。

値を返すには、return文を私用する。これを使用して値を返すと、
関数呼び出し(sum();)は、その値に書き換えられる。

人で例えるなら、社員の関数くんに仕事をしてもらい
「仕事の結果報告をもらう」という事になる。

以下の画像は、意味は同じ。

ただし下にはreturn文がない。
これは、関数くんに仕事を依頼したけど
「結果報告をしてくれなかった」という事になる。






関数とは?定義や呼び出しも解説


人間:関数
ご飯:引数
排泄物:戻り値


処理をひとまとまりに部品化するもの」だと考える
関数を使って処理を部品化することで、
再利用」が可能となる


関数は事前に組み立てておく必要がある
どのような処理があるかを予め定義する

大きなプロジェクトになる程
たくさんの関数を作る事になる、これがプログラマの仕事


関数では「定義」と「呼び出し」が重要な概念

関数の定義
関数を作ること
関数は、function というキーワードを使って作る事ができる

関数の呼び出し
関数を使うこと
関数は呼び出されるまで動かないので「呼び出す」必要がある

関数の呼び出し(再利用)
「一度関数を定義しておく」と、何度でも再利用できる
何度もfor文で処理を書かなくても、一つ書いておけば充分


なお、PHPにはもとから用意されてる関数と、
自分で作る関数の2種類がある
後者を「ユーザー定義関数」と言う

※参考:PHPの基礎知識。記述や文字の認識方法も解説

引数について


引数 → 関数 → 戻り値


関数に何か処理を依頼する際
「このデータを使って処理をして欲しい」というケースがあるが、
この時関数に渡す値を「引数」と呼ぶ

※「料理:抽象」という関数に、
 「材料:具体」という引数を渡して料理をしてもらうイメージ

※引数は1つだけでなく複数指定できる、
 複数指定する際は「,(カンマ)」で区切る

※デフォルト値を設定する事も可能

7月22日追記

「関数」という箱には、何かしらの処理のまとまりが入っていて、
それらの処理が終わると、処理結果としてある値が返される

関数とは、ある処理のまとまりに名前を付け、
その関数の実行命令が来たら実行し、結果を返す仕組みの事

返された結果を「戻り値(返り値)」と言う

戻り値は、ない事もある
やりたいことによっては、関数の中で
何かしらの処理がなされた後、結果が必要ないこともあるから

「ある結果を作るための材料」を加えたとしたら?
これが「引数」であり、関数の本来の姿である



引数(ひきすう)を簡単にいうと「関数に渡す値」のこと
関数に引数を渡すことで、より便利に関数を使うことが出来る

引数には以下の2種類がある
・関数を呼び出す際に渡す引数:実引数
・関数を定義する際に受け取る引数:仮引数
(関数が出力する値が「戻り値」である。仮引数との違いに注意)

引数には必ず「渡す側」と「受け取る側」が存在する



戻り値について


関数から受け取る値を「戻り値」と呼ぶ

関数の戻り値の使い方
①他の処理でそのまま使う
他の文に組み込んで関数を呼び出すと、戻り値の値を他の処理でそのまま使える
②条件判定として使う
if文、while文、for文で条件判定を行う場合は、
関数の戻り値を判定直接判定する方法がよく用いられる

戻り値を英語で「retval」と呼ぶ


グローバル変数とローカル変数の違い


グローバル変数
プログラムの中の最も外側のブロックで宣言された変数
PHPの変数は使える有効範囲が限られている、この範囲をスコープと呼ぶ
変数の宣言位置によって、値が保持される範囲が異なる

ローカル変数
プログラムの中にあるブロックの中で宣言された変数のこと
ユーザー定義関数の中で定義された変数のこと
PHPの変数は使える有効範囲が限られている、この範囲をスコープと呼ぶ
{}で囲まれた関数内で宣言された変数がローカル変数

※参考:変数とは?名付け方のコツや定数についても解説


関数の中の変数には有効範囲(スコープ)があり、
その範囲を越えて操作する事は出来ない

関数の中で、関数の外の変数を参照するには、
その変数をグローバル宣言して使う方法がある

関数内でグローバルスコープの変数を使うには
以下の方法も用いられる

・配列$GLOBAL
・$_GET(HTTP GET変数)
・$_POST(HTTP_POST変数)
・$_COOKIE(クッキー)

また、$GLOBALSは連想配列で、
どこでも利用できるので「スーパーグローバル」と呼ばれる

変数の有効範囲は関数内にしたままで
グローバルスコープ変数のように変数を扱う場合はstaticを使う


Cookie(クッキー)
閲覧しているWebブラウザを通して、訪問者のコンピュータにデータを書き込む事ができる仕組み。訪問者がサイド、同じWebサイトを訪れるとその訪問者の識別と履歴を追うことができる。いつ、どこから、どのページを閲覧したかを詳細に確認することができる。

備忘録メモ


関数=複数の命令を1つにまとめるもの

ドアを開ける」という動作を手順化して文に分けると
取っ手を掴む
取っ手をひねって留め具を外す
取っ手を持ったまま手前に引く
といった3つの命令に分割できる事がわかる。

この3つをまとめて「ドアを開ける」と表現したい時に
「関数」は便利。複数の文に書かれた命令に
名前を付けて、まとめて呼び出す事が可能となる。

関数を使うことで「プログラムが読みやすくなる」
「プログラムを再利用できる」といったメリットがある。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。