PHPやPythonで重要になるのが関数型とオブジェクト指向です。
#関数型
関数型を言葉で説明すると、
解決しようとする問題に対して、その問題の性質を関数の組み合わせで記述するプログラミング手法
となります。
コードを比較すると↓のようになります。
〇基本的なコード
$sum=0;
for($i=0; $i<10; $i++){
$sum=$sum+$i;
}
echo $sum;
〇関数型
$nums=range(1,9);
echo array_sum($nums);
関数型だと2行で終わり、一目で分かりやすいですよね。
PHPやPythonにはあらかじめrangeやarray_sumなどの関数が用意されており、これをうまく利用するとコードがすっきりします。
また、関数型は入力(引数)に対して、特定の値を返します。
最初にデータをすべて用意するので、その後の関数操作で必ず特定の値が返ってきます。
(例)
$x=3;
$y=2;
$z=$x+$y;
echo $z; //出力結果:5
これが命令型だと、入力がデータベースとのやり取りなどで変わるので出力結果も異なります。
#オブジェクト指向
オブジェクト指向とは、
「こういうモノを作りましょう」
「そして、そのモノを使いましょう」
という考え方です。
オブジェクト指向には5つの種類があります。
クラス(概念):プログラムを楽にするためにコードを部品化する設計図のこと(そのモノがどんなものか書いてある)。
インスタンス(物体):クラスを基に実際に作ったモノ
オブジェクト:概念や物体をふんわりと表現したもの
メソッド:クラスの中で使われている関数
プロパティ:内部的にメソッド呼び出しを利用するよう自動的に変換してくれる機能。通常、フィールドへ外部からアクセスするにはアクセスメソッド(setter/getter)が必要だが、プロパティ機能のある言語では関数を簡易化(メソッド)し、少ないコード量で安全にフィールドへアクセスできる。
日常のもので例を出すと、
クラス:スマートフォン(それってどんなモノ?っていう概念)
インスタンス:iPhone,Androidの実機(実際に使えるモノ・物体)
オブジェクト:携帯電話(ふんわりと表現)
となります。
オブジェクト指向を使ってプログラムをきれいに書くと、大規模なプログラムを書きやすく、仕様変更しやすくなります。