PHP クラス〜オブジェクト指向プログラミング〜 第1回〜未経験の為のPHPプログラミング講座〜

PHPは膨大な関数ライブラリを持っていますが、オブジェクト指向プログラミングが全盛となてきてる現在、PHPにもクラスライブラリが多数提供されてるようになってきました。

PHPでも煩雑になりがちな「手続き型」よりも「オブジェクト指向プログラミング」を利用する機会が増えてきます。

created by Rinker
オブジェクト指向の全体像を整理して解説オブジェクト指向は、プログラミングをはじめ、フレームワーク、デザインパターン、UML、モデリング、設計、アジャイル開発手法と、ソフトウエア開発全体を支える総合技術となっています。本書では、オブジェクト指向の全体像とそこに含まれる各技術が何を目的として何を実現するのかを解説します。併せて、混乱を避けるために全体を「プログラミング技術」と「汎用の整理術」の2つに分けて説明します。

クラスと関数・変数の違い

クラスとは関数や変数の集合体のようなものです。
変数はデータを保持することができ、関数はデータの処理を行うことができます。

クラスは関数と変数の集合体であることから、データの保持・処理どちらも行うことができます。

変数データを保持
関数データの処理
クラス保持・処理どちらも行う

クラス内の変数・関数・定数の名称

クラスの中に定義された、変数・関数・定数をそれぞれ

  • 変数は「メンバ変数」または「プロパティ」
  • 関数は「メンバ関数」または「メソッド」
  • 定数は「オブジェクト定数」

と呼びます。

通常時クラス内に定義された場合の呼び名
変数メンバ変数、プロパティ
関数メンバ関数、メソッド
定数オブジェクト定数

クラスの基本〜オブジェクト指向プログラミング〜

クラスを作成する

クラスを作成するには「class クラス名(){ … }」で作成します。

メンバ変数・プロパティを作成

次にクラス内にプロパティ(メンバ変数)を作成します。
プロパティ(メンバ変数)に命名規則はありませんが $_[プロパティ名] とすることが一般的です。

private」を頭につけている理由は、このプロパティはこのクラス内でのみ読み書き可能にするためです。
その他、「static」や「public」なども利用可能です。

メソッド(メンバ関数)を作成

次にクラス内にメソッド(メンバ関数)を作成します。
今回はプロパティに値を与えるセッターとプロパティーの値を取得するゲッターを作成してみます。

※一般的に、値を代入するメソッド(メンバ関数)をセッター、値を出力するメソッド(メンバ関数)をゲッターと呼びます。

クラス内のプロパティへの代入や取得が基本的にメソッドを利用して行うので「セッター」「ゲッター」は頻繁に作成するメソッドとなります。
この「セッター」「ゲッター」を利用してプロパティを操作するため「private」でプロパティを宣言しています。

※プロパティにprivateを指定することでクラス外からの変数の変更ができなくなり思わぬ変更への対応が可能となります。

また、クラス内でプロパティ(メンバ変数)を利用する際は「$_data01」ではなく「$this->」を利用して「$this->_data01」と記述します。

$this->$_data01 ではなく $this->_data01、「$_data01」の「$」を省略している部分に注意してください。

メソッドはプロパティとは異なり、クラス外から利用可能にする必要があるため「public」を利用しています。プロパティ同様「static」や「private」も利用可能です。
これで簡単なクラスが作成できました。

インスタンス〜クラスを利用する準備〜

クラスを利用するには、まず利用するクラスを「インスタンス化」する必要があります。
インスタンス化するにには「new演算子」を利用します。作成されたオブジェクトは変数に格納されます。

プロパティ、メソッドの呼び出し方

インスタンスが完了したのでプロパティやメソッドを利用してみます。
プロパティーやメソッドを利用するには「->」アロー演算子を利用します。

クラスの利用してみて

クラスの簡単な説明は以上ですが、クラスの利便性を理解するためには、より実践的なクラスを作成し利用するのが近道です。

created by Rinker
PHP7の基本構文から、クラス、DB連携、セキュリティ対策まで、しっかり習得! PHPプログラミングの標準教科書『独習PHP』が、最新のPHP7に対応。PHPでWebページ/アプリケーションを開発する際に必要な基礎的な知識、PHPの基本構文から、クラス、データベース連携、セキュリティまで、詳細かつ丁寧に解説します。
created by Rinker
時間がなくたって、プログラミングは学べます。学習を躊躇していた人たちに、既存の入門書で挫折した人たちに、「これならできる!」の最短カリキュラムを、土日の14時間で提供。まったくのプログラミング初心者が簡単なWebデータベースアプリを構築できるまでの成長コースを、手取り足取り、導きます。
created by Rinker
オブジェクト指向の全体像を整理して解説オブジェクト指向は、プログラミングをはじめ、フレームワーク、デザインパターン、UML、モデリング、設計、アジャイル開発手法と、ソフトウエア開発全体を支える総合技術となっています。本書では、オブジェクト指向の全体像とそこに含まれる各技術が何を目的として何を実現するのかを解説します。併せて、混乱を避けるために全体を「プログラミング技術」と「汎用の整理術」の2つに分けて説明します。

コメントする

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)