PHPのクラスの継承

CodeIgniter(PHP開発)

PHPの紹介で、クラスの継承というとメソッドのオーバーライドの例しか見たことがない気がする。

ここんところCode Igniterでモデル(MVCでいうモデル)を作っていたが、データを暗号化する必要が出てきた。

こわごわ、メソッドを書いて読み取りの時は

みたいな感じで、読み出してデータを復号する部分を書いた。
つまり、メソッドの継承。

書き込みの時は引数のデータを暗号化してから親のメソッドを呼んだらあっさりできてしまった。

コンストラクターの継承以外もできて当たり前だよな。

ただし、同名で継承したメソッドの引数は親と同じにしておかないとPHPに怒られる。

もともとCoge Igniterでモデルクラスを書く時は、DBの基本的なアクセスを実装したMY_Model.phpをcoreに入れて継承して使っているんだけど。(モデル名をデフォルトでテーブル名とみなすのがミソ)

オブジェクト指向って便利だなあとありがたみを感じました。

コメント