カウンタクラス作成
カウンタクラスファイル作成
カウンタクラスファイルを作成することにします。
クラスファイルは、カウンタクラス元ファイルを変形します。
元ファイル内容は、Move Image に戻り、左サイドナビ「カウンタクラス作成」の中の
「カウンタクラス-元 PHP ファイル」
から見てください。
変形後のカウンタクラス PHP ファイルは、Move Image に戻り、左サイドナビ「カウンタクラス作成」の中の
「カウンタクラス PHP ファイル」
から見てください。
変形する時の作法を順次説明していきます。
クラス名と変数宣言
まずクラス名を宣言します。
class Counter { ・・・・・・}
Counter というクラスの動作を {・・・・} の中に記述します。
次に使用する変数を定義します。
クラスの中で使用する変数をメンバ変数といい、これにはアクセス修飾子を付与します。
アクセス修飾子とはメンバ変数やメソッドにどこからアクセスできるかを指定するものです。
指定には「public」「private」「protected」の3つのどれかを指定します。
それぞれアクセス権が異なります。
public クラス内、クラス外のどこからでもアクセス可能
private 同じクラス内からのみアクセス可能
protected 同じクラス、及び子クラスからアクセス可能
クラスの継承を行なう時に使用
一般的には「public」を使用します。
すなわち、クラス内のメソッド内から参照されたり、クラスからオブジェクトを作成し、
オブジェクトからメンバ変数の値を獲得したり変更したりといったことが可能で、使いやすいです。
とりあえず動かしたい時には都合がよいです。
アクセス修飾子をもっと考える
クラスの中の変数を public としておくと、クラス内、クラス外のどこからでもアクセス可能です。
言い換えると、同じ変数名を他のファイルで使用していると、予期せぬ場面でこの変数を書換えられてしまいます。
クラスを自分でつくって自分だけが使っていれば、このような問題発生は少ないのですが、
クラスを共有して使用することを考えると危険です。
正常に動いていたものが急に動かなくなったりします。
今回変数は、ファイル操作のための $fp がありますので
private $fp;
とします。
コンストラクタ宣言
次に、コンストラクタ宣言
public function __construct ($filename){・・・・・}
をします。
public ですので、このコンストラクタはクラス内外のどこからでもアクセス可能です。
Counter というクラスを呼び出されたとき処理すべき動作を {・・・・} の中に記述します。
$filename = 'count_1.txt'
とすれば、count_1.txt を引数として渡すので、処理をお願い、ということになります。
メンバ変数を $this->_**** で定義
クラス内でメンバ変数にアクセスするには"this"を使って
$this-> $ を取ったメンバ変数名
のように記述します。
引数としてもらった変数をクラス内で使用するメンバ変数に置換えます。
作法は、例えば、引数 $filename をメンバ変数に置換えるには
$ と _filename
に一回分解し、この間に、this-> を挿入します。
すなわち
$this->_filename = $filename;
とすれば、$filename を利用することができます。
次に、元ファイルで使用していた $count は、クラス内では、
$this->_count のように変換します。
コンストラクタファイル
コンストラクタ public function __construct ($filename){・・・・・}
の{・・・・・}部分を作成していきます。
「カウンタクラス-元 PHP ファイル」
とほぼ同じです。
見比べると、
$filename → $this->_filename
$count → $this->_count
のように置換わっています。
表示メソッドファイル
カウンタ値をディスプレイに表示する
メソッド function view
を作成します。
$this->_count を呼んで、表示すればよいはずです。
よって、
function view() {
echo $this->_count;
}
となります。
カウンタクラスファイルの使い方
カウンタクラスファイルを使います。
使い方は至って簡単、左サイドナビ「カウンタクラス作成」の中の
「シンプルカウンタ PHP ファイル」
から見てください。
それでは、実際にカウンタクラスを使ったシンプルカウンタ PHP ファイルを説明していきます。
インスタンスをつくるだけ
Counter クラスファイル count_2.php を読込む
require_once ('class/count_2.php');
カウンタ値を保存しているファイル名で、インスタンスを作成
$CNT1 = new Counter('count/c_sp.txt');
Counter クラスメソッド view を呼出して終わりです。
$CNT1->view();
これで、WEB を開くたびにカウンタ値がアップするシンプルカウンタ PHP ファイルができ上がりました。
カウンタクラスファイル動作確認に続く
カウンタクラス-元ファイル動作確認に戻る