プレミアムWPテーマプラグイン 無料ダウンロード

Reply To:bbpressで作られた掲示板です

質問の送信 > 全てのフォーラム > Reply To:bbpressで作られた掲示板です

クラス(class)で表示器( - >)の意味
http://jobdahan.net/language_php/17384

本内容は、 http://cafe.naver.com/phpcafe.cafe カフェに私は質問に置いて回答された内容を学習レベルで上げたものです。
回答いただいたジヨン様、ここを借りて再びガムスァよ.. ^^
————————————————————————————————————--

ハヌルニムはまず、オブジェクト指向とは何なのかを勉強しなければならないようです。
書店でのオブジェクト指向に関する本を購入してみてください。

今理解をできない部分がまさに関数とオブジェクトの違いです。

オブジェクトは、独自の変数と関数ことができます。 オブジェクトの変数、関数は、それぞれのメンバ変数、メソッドと呼ばれます。

class test {
var $ a; //メンバ変数(クラス内で変数を定義する時、varを必ず書いてなければならない。)
var $ b;

function aaa(){//メソッド(クラスの中の関数をメソッドとする。)
$ this-> abcd = "アルファベット"; //メソッドの中で変数を定義するときは、$ thisを与えられます。
}
}

上記のようにtestとclassがあり、このclassを使用するためには以下のようにオブジェクトを生成します。

$ obj = new test;

今$ objに新しいオブジェクト一つが生成され、このオブジェクトは、$ a、$ bというメンバ変数とaaa()というメソッド一つが含まれています。

もしメンバ変数やメソッドを使用したい場合は以下のようにください。

echo $ obj-> a; //メンバ変数$ aの値を出力
$ tmp = $ obj-> aaa(); //メソッドaaa()を実行させ、その値を$ tmpに保存

- >をグローバル解析するときは「何の中にある」と表現すると解釈が楽であろうと思われます。
つまり$ obj内の$ aを出力、$ objの中にあるaaa()を実行

さて「 - >」これは何をするのかある程度感が来られると思われます。

今、次の例を見てください。

class test {
var $ a;
var $ b;

function aaa(){
echo $ this-> a;
}
}

上記のようにaaa()メソッドで、自分が属しているオブジェクトのメンバ変数またはメソッドにアクセスまたは実行させるときは、thisキーワードを使用します。 このthisは言葉のまま、現在のオブジェクトを意味するものです。 つまり、外部の他のオブジェクトの変数、メソッドと、自分の変数、メソッドを区別すると考えてもよいです... ^^

さてご質問の内容の構文を一度みましょう。

$ this-> cut_str_size = $ data-> info-> cut_str_size;

まず前のものから見ると...

「現在のオブジェクトの中にあるcut_str_sizeメンバ変数に」と解釈することができでしょう。
さて、このメンバ変数に何を保存するか?

「$ data客に中にあるinfoオブジェクトの中にあるcut_str_sizeメンバ変数の値 "を保存しなさい。

*参考までに - >を使用すると、その先にあるのは、無条件にオブジェクトになります。
そしてinfoがなぜオブジェクトかどうかは、$ dataが生成される部分を見れば確認することができあると思い。
DBクエリ後fetch()と呼ばれるメソッドを利用しています。 ところで、このfetch()と呼ばれるメソッドでは、
mysql_fetch_object()とは、php関数を使用しています。 そして、この関数は、戻り値としてオブジェクトを返します。

つまり$ tmp = mysql_fetch_object($ result); このようにすると、$ tmpの値は、オブジェクトが保存されて
値を使用したい場合は$ tmp->フィールド名式でアクセスされます。

今$ data-> info-> cut_str_sizeを理解することができるように落せ考えられますね... ^^

$ cond_list = "module_srl = '{$ module_srl}'";

上記ラインはちょうど$ cond_listにmodule_srl = '$ module_srl変数の値」の文字列を格納することです。
$ module_srl変数の値がtestであればmodule_srl = 'test'このように保存よいです。

$ oDB-> select( '*'、 'articles'、$ cond_list、$ order、0、$ rows);

上記ラインは$ oDB客に中にあるselect()とは、メソッドを呼び出しており、select()メソッドが実行されるときに必要とされる因子を配信しているラインです。 このラインの結果を予測しご覧select()メソッドを確認してみてください。

$ tmp-> url = zUrl :: getViewUrl($ tmp-> article_srl);

最後の行は$ tmpオブジェクト内のurlメンバ変数に...
zUrlオブジェクトのgetViewUrl()メソッドの実行結果を保存するようになります。

::は、newという表示器にclassを事前にオブジェクト化させて離さずに使用した時点で、オブジェクトが生成され、指定されたメソッドが実行されるようにするアクセサです。

その後、ソース解析に役立つドゥェオトギル願い進む前に、オブジェクト指向プログラムの最初の勉強みてお勧めします... ^^