«前の日記(2008年12月07日) 最新 次の日記(2008年12月09日)» 編集

日々をアレコレ


2008年12月08日

PHP5でクラス内でのメンバへのアクセス

PHP5ではメンバ変数へのアクセスがC++とかと違うので注意。

class MyClass
{
    privete $var;
    function func()
    {
        $this->$var = 0;
    }
}

というみたいに、$this->でアクセスしなきゃいけない。$varではローカルな変数になるので注意。

汎化して継承すればいいんだね

アプリケーションの設定ファイルを扱うクラスを作成中。基本的にはPEAR::Configを利用して、INIファイルの読み込み/書き込み、値の取得/設定を行うというクラスにするつもり。さて、ここで問題。読み込み/書き込みするファイルパスの設定をどうするか。いろんなアプリケーションで使うためには、ファイルパスはクラス内では設定せずに、読み込み/書き込みをするタイミングで渡してやるのが正解。しかし、同じアプリケーション内で異なるファイルから呼び出す場合、すべてのファイルでファイルパスを設定してやる必要があり、1つでも間違えるとおかしなことになってしまうので、クラス内で設定したくなる。

と、1時間ほど悩んだんだけど、汎化したクラスと、それを継承したアプリケーション専用のクラスを作れば問題解決だよね?アプリケーション内の各ファイルから設定ファイルを扱うときは専用クラスを呼び出せば、ファイルパスの設定は1ヶ所でまとまるし。ん〜、なんだかバカみたいなことで1時間も悩んじゃったよ。

本日のツッコミ(全2件) [ツッコミを入れる]
李徴 (2008年12月08日 21:19)

おや、ちょっとめんどくさいですね。まあ、C++とかだとコーディングルールで変数の命名を区別しないと混乱しますけどね。

H (2008年12月08日 21:27)

>クラス内でのメンバへのアクセス<br>→連絡網か何かの話かと思いました。


«前の日記(2008年12月07日) 最新 次の日記(2008年12月09日)» 編集