0

OpenCart 用のモジュールを開発したいのですが、PHP の OOP は初めてです。OpenCart コードの解釈に問題があります。

PHP で次のステートメントが何を意味するかを知っています。つまり、呼び出し元オブジェクトへの参照である $this を介してクラスのメソッドと変数にアクセスします。

$this->custom_function();
$this->defined_variable;

しかし、私はこのような声明を理解していません。$this->config->get('config_template')またはこれ$this->request->get['field']など。

これを理解するのを手伝ってくれませんか。どのように読まれる/解釈されるのですか?

4

2 に答える 2

2
$ans = $this->config->get('config_template')
// is the same as
$foo = $this->config; // accessing 'config' property
$ans = $foo->get('config_template'); // calling 'get' function on object in config var

 $ans = $this->request->get['field'];
 // is the same as
 $bar = $this->request; // accessing 'request' property
 $ans = $bar->get['field']; // accessing 'get' property (which is an array) 

これはメソッド/プロパティ チェーンと呼ばれ、一度だけ使用するオブジェクトに変数を設定したくない場合に使用されます。多次元配列にアクセスするのと同じです。たとえば、配列を作成$arr['one']['two']['three']し、配列がオブジェクトの場合は次のように記述します$obj->one->two->three

オープンカートのソースはかなり醜いことに注意してください。あまり複雑でわかりにくいもので学習することをお勧めします

于 2012-09-18T18:45:00.103 に答える
1
$this->config->get('config_template') 

次のように読み取ることができます: 現在のオブジェクト ($this) から、オブジェクトであるプロパティ (config) を使用し、config オブジェクトでメソッド get を呼び出し、値 'config_template' を関数に渡します。

$this->request->get['field'] 

次のように読み取ることができます: 現在のオブジェクト ($this) から、オブジェクトであるプロパティ (リクエスト) を使用し、そのオブジェクトからインデックス 'field' を持つ配列 (get) を使用します。

于 2012-09-18T18:45:26.233 に答える