プログラムを始めると○○関数という表記もあれば○○メソッドという表記をよく見かけます。 一見同じように見えるのですが、違います。今日はそんな記事を執筆していきたいと思います。2015年7月23日記事

目次



用語の定義

関数

関数とは、引数と呼ばれるデータを受け取り、定められた通りの処理を実行して結果を返す一連の命令群。 多くのプログラミング言語では、関数がプログラムを構成する要素となっている。多くの言語や処理系では、開発者の負担を軽減するため、よく使う機能が関数としてあらかじめ用意されている。 http://e-words.jp/w/%E9%96%A2%E6%95%B0.html

メソッド

オブジェクト指向プログラミングにおいて、各オブジェクトが持っている自身に対する操作。 メソッドとは、オブジェクト指向プログラミングにおいて、各オブジェクトが持っている自身に対する操作。 http://e-words.jp/w/%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89.html

といってもあまりよくわかりませんね。少し具体化して説明します。

ぞれぞれの具体例

関数のイメージ(車を動かします関数というものがあったとする)

車を動かします 一度操作をすると、1m前にしか動けません!

プログラムで言えば、nl2br関数はnl2br($text)と書かれた場合に$text内にある文字列の中で「改行文字の前に HTML の改行タグを挿入する」という一つの行動しかできません。 また関数は 用意されています。

メソッドのイメージ(車を動かしますメソッドというものがあったとする)

車を動かします!

命令をすれば(プログラムにどう動かせばよいのかを書けば)、とまったり、動いたり、右に曲がったり、左に曲がったりできます! phpプログラムで言えば、pdoの利用において$pdo->bindParam(~,~,~)は~~~が命令部分でどう動くのかを指示できるということです。 ~はプログラマの意図したものを入れ、操作することができます。bindParamメソッドと呼ばれていたりします。 また、メソッドを使うためには、 クラスと呼ばれるものを作らなければならず、関数を組み合わせて作られます。 bindParamに関してもPDOクラスを読み込んで使われています。

オブジェクト指向プログラミング

オブジェクト指向プログラミングとは、コンピュータプログラムの構造、構成法の一つで、関連するデータの集合体と、それを操作する手続きを「オブジェクト」(object)と呼ばれるひとまとまりの単位として一体化し、オブジェクトの組み合わせとしてプログラムを記述する手法。 http://e-words.jp/w/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0.html

要は車を動かすプログラムを書くなら、関数をたくさん使って(右の命令、左の命令!)というようにチマチマかくより、 関数を色々と使って車を動かすプログラムを作って、さらに指定によって、動かし方に応用がきくんだぜ!的なプログラムを作ったほう がプログラムの再利用性や生産性を高めることができるのです。

まとめ

これでもたぶん理解できないと思います。私も最初は戸惑いました。「関数 メソッド 違い」で検索してみてください。 色々とクロスチェックすることで、理解が増すと思います。

以上

最終更新:2015年07月23日 22:53