「PHPで関数とメソッドの違いを理解する」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
プログラムを始めると○○関数という表記もあれば○○メソッドという表記をよく見かけます。
一見同じように見えるのですが、違います。今日はそんな記事を執筆していきたいと思います。2015年7月23日記事
~
~
目次
#contents
~
~
*用語の定義
**関数
関数とは、引数と呼ばれるデータを受け取り、定められた通りの処理を実行して結果を返す一連の命令群。
多くのプログラミング言語では、関数がプログラムを構成する要素となっている。多くの言語や処理系では、開発者の負担を軽減するため、よく使う機能が関数としてあらかじめ用意されている。
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 の改行タグを挿入する」という一つの行動しかできません。
また関数は&color(red){用意されています。}
~
~
**メソッドのイメージ(車を動かしますメソッドというものがあったとする)
車を動かします!
~
~
命令をすれば(プログラムにどう動かせばよいのかを書けば)、とまったり、動いたり、右に曲がったり、左に曲がったりできます!
phpプログラムで言えば、pdoの利用において$pdo->bindParam(~,~,~)は~~~が命令部分でどう動くのかを指示できるということです。
~はプログラマの意図したものを入れ、操作することができます。bindParamメソッドと呼ばれていたりします。
また、メソッドを使うためには、&color(red){クラスと呼ばれるものを作らなければならず、関数を組み合わせて作られます。}
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
~
~
要は車を動かすプログラムを書くなら、関数をたくさん使って(右の命令、左の命令!)というようにチマチマかくより、
&color(red){関数を色々と使って車を動かすプログラムを作って、さらに指定によって、動かし方に応用がきくんだぜ!的なプログラムを作ったほう}がプログラムの再利用性や生産性を高めることができるのです。
~
~
*まとめ
これでもたぶん理解できないと思います。私も最初は戸惑いました。「関数 メソッド 違い」で検索してみてください。
色々とクロスチェックすることで、理解が増すと思います。
~
~
以上