遅行スパンクラス
遅行スパンクラスファイル作成
遅行スパンクラスファイル delay_dif-cla-gra.php を作成します。
作成ファイル内容は、
63Pear Village に戻り
左サイドナビ「遅行スパンクラス」の中の
遅行スパンクラス PHP ファイル
から見てください。
遅行スパンクラスファイル作成の流れについては下記フロ-チャ-トを見てください。
ファイルは以下の function から構成されます。
-
コンストラクタ function __construct
インスタンス化のためクラス内部で利用する外部リソ-スの初期化処理
- メソッド function dif_arry
位相比較処理
- メソッド function res_dis
計算結果表示
- メソッド function yosoku
予測値表示
- メソッド function graph
チャ-ト表示
コンストラクタ function __construct 作成
クラスを利用するとき最初に new 演算子によってインスタンス化が実行されます。
この時実行される特別なメソッドがコンストラクタです。
名前は __construct に固定されています。
アンダスコア_ が 2個ならんでいます。
通常は、
public function __construct ($delay)
{ }
のような書式になります。
$delay は連想配列である場合が多く、インスタンス化により渡されます。
今回は、$delay は次のように定義され、インスタンスから受け取ります。
- $delay['filepath']
値動のデ-タが入った CSV ファイルのパスフォルダ名とファイル名
- $delay['dist']
初期比較期間数
- $delay['limit']
チャ-ト表示足数、上限はデ-タ数まで
- $delay['disp']
結果表示形式指示値
1:途中経過含め全表示
2:結果デ-タとチャ-ト
3:チャ-トのみ - $delay['y_max']
チャ-ト Y 軸最大値
そして、受け取った各配列値は、$this に渡します。
$this はメソッドのなかで使える特別な変数で、各メソッド間を渡り歩くことができます。
例えば、
$this -> dist = $delay['dist'];
とすれば、$this の dist プロパティに $delay['dist'] の値(例えば「10」)を設定することになります。
同様に、
$this -> filepath = $delay['filepath'];
$this -> limit = $delay['limit'];
$this -> disp = $delay['disp'];
$this -> disp = $delay['y_max'];
として、インスタンスから受け取った連想配列値を $this に引き継ぎます。
受取ったインスタンス値の正常性確認
受取ったインスタンス値が正しいか判定します。
異常値ならばエラ-表示します。
たとえば、$delay['filepath'] に存在しないファイル名が指定されていれば
Fatal error が発生しますが、$delay['limit'] に大きな数値が設定されていても何のエラ-もなく
作業は進んで行ってしまいます。
そこで try~catch 命令で例外処理を実行します。
この例外処理は PHP関数 PDO クラスで、例外メッセ-ジを出力してくれる getMessage() メソッド
により実行します。
書式は以下の通りです。
try{
通常はif文等で発生例外予測条件を記入
}
$e のところにエラ-文を設定して
throw new Exception($e);
}catch(Exception $e){
例外クラスの呼出し、インスタンスは不要
echo $e->getMessage();
}
なお、例外処理が発生したとしてもプログラム処理は継続して実行します。
catch ブロックが賢く処理してくれるのです。
今回は、完全なる例外処理とはなっていませんが、次のように書込みました。
完璧な例外処理はもっと延々と書かなければいけませんが、余り意味がないので止めます。
try{
if($delay['dist']<10
|| $delay['dist']>49){
throw new Exception(
'エラ--比較期間は 10~49
にしてください<br>'
);
}
if ($delay['limit'] < 88){
throw new Exception(
'エラ--グラフの足数は 88
以上にしてください<br>'
);
}
if ($delay['disp'] > 3){
throw new Exception(
'エラ--表示形式は 1~3
にしてください<br>'
);
}
if($delay['y_max']<70
|| $delay['y_max']>99){
throw new Exception(
'エラ-- Y軸最大値は 70~99
にしてください<br>'
);
}
}catch(Exception $e) {
echo $e->getMessage();
}
引き続き、遅行スパンクラス メソッドを作成します。
遅行スパンクラスファイル作成 その2 に進む
遅行スパンクラス概要 に戻る