2011-08-08 12 views
3

私はかなり簡単に拡張できるようにしたいクラスを作成していますが、各変数には3つまたは4つの関数が必要です。私は、配列や他のデータ型を利用する方法を考えるつもりです。そのため、必須の関数を記述し、より多くのコードを書かなくても各変数で使用できるようになりました。単に配列に新しい変数を追加するだけです自動的に処理されます。誰もこれのような何かをしましたか?PHPクラスの自動調整機能ですか?

+3

達成しようとしているデータ処理の例を挙げることができますか?あなたが言及しているものは実行可能ですが、私はあなたを助けるための詳細が必要です。 –

+0

これは実験的な質問で、データがそれほど重要ではなかった。他の人がこれを解決する方法を知りたかっただけです。シングルトンを作成して、データベースのやりとりによって自動的に展開したいと思っていました。 – Nathan

答えて

2

PHP magic methodsをご覧ください。 __getを使用して、アクセスできないプロパティが呼び出されたときにデータストレージ(たとえば配列)から値を取得し、設定されている場合は__setを使用できます。アクセス不可能なメソッドが呼び出されたときに__callメソッドが呼び出されるため、そこに必要なメソッドが4つあるかどうかを確認できます。マジックメソッドは、すべてのメソッドを手動でコーディングするより少し遅いことに注意してください。

1

キャッチオールメソッドとして、__callをクラスに実装することができます。詳細は、the documentationを参照してください。このようにして、オブジェクトは実際には存在しないが名前に基づいて動的にディスパッチされるメソッドのメソッド呼び出しを受け取ることができます。このメソッドが要求されているかどうかは、これらの展開のいずれかに該当するかどうかをチェックします。

0

このようなものをお探しですか?

function myfunc($requiredParameter, $arrayWithOptionalParameters=array()) { 
    if(!empty($arrayWithOptionalParameters['somekey'])) { 
     // Do stuff 
    } 
} 
関連する問題