PHPでオブジェクト指向プログラミング
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/04/17(日) 16:55:57ID:iM4mgYnJPHPによるOOPについて語りましょう。
0154nobodyさん
2005/06/09(木) 13:46:36ID:???当然、客先の了解を取って、トンネル開けて2chに書き込んでたんだろう。
もし、無許可でやってたとしたら、皆が言うように恥ずかしい奴だが。
0157nobodyさん
2005/06/09(木) 16:17:25ID:???> やっぱり何の保険もない奴は雇わないに限るな
保険?何の話だ?保証の間違いか?
>>154
> 当然、客先の了解を取って、トンネル開けて2chに書き込んでたんだろう。
当たり前じゃないですか。というか「トンネル開けて」ってSSHの意味分かってないのかも
知れんが、仮想端末越しにブラウズしてるだけだぞ?
> 社内規定でわざわざ閉じているのに、それを中の人が無視してどうするのかと思う
会社のIPアドレスで余計なことして欲しくないから閉じてるんであって、
会社とは全く関係ないマシンから独立に書き込む分には何の問題も生じないでしょ。
その辺はちゃんと了解も取ってあるし。
0158nobodyさん
2005/06/09(木) 16:40:55ID:???ソース晒したら意見もらえるかな。
最近OOPの勉強を始めたので、出来る人から見ればクソみたいなソースかもしれませんが…
0159nobodyさん
2005/06/09(木) 20:58:08ID:???PROXYなんか当たり前の話だろ何言ってんだお前?
2ちゃんねるで情報収集?馬鹿かお前?
程度の低さが知れるなwお前みたいなのがWebプログラマを騙るなよ。
一緒にされたらかなわん。
>>149
>WebやOOPが本職がじゃない
ハァ?OOPって職なんですか?
なんだこのレベルの低さはw
もう書き込むなよ恥ずかしいだけだから。
0161nobodyさん
2005/06/10(金) 00:31:40ID:???>>157なんてイタくて見てられないくらいだもんな。釣りでしょ。
0162nobodyさん
2005/06/10(金) 00:53:16ID:???0163nobodyさん
2005/06/10(金) 00:56:44ID:???0164nobodyさん
2005/06/10(金) 02:18:25ID:???> PROXYなんか当たり前の話だろ何言ってんだお前?
Proxyが珍しいとは言ってないけど。
外部へのフィルタリングにProxyサーバなんて立てるか今時?って言ってるんだよ。
> 2ちゃんねるで情報収集?馬鹿かお前?
零細企業なら必要ないかも知れんけどな。ある程度大きいところになると
こういうトコに自社情報がリークしてたりは日常茶飯事なのよ。そういうのチェックする
部門だってあるぞ。あとググった結果が2chだったってことも別に珍しくないんだが。
あと、本職=専門って意味な。辞書引いてみ。
0165nobodyさん
2005/06/10(金) 03:25:40ID:???0166nobodyさん
2005/06/10(金) 06:17:15ID:???0167nobodyさん
2005/06/10(金) 11:24:28ID:???> メソッドのオーバーライドはデフォルトで動的束縛
ここが意味不明。
「オーバーライド」は継承時の実装上書きのこと。
継承が不要だと言いたいときになぜ出てくる?
0169nobodyさん
2005/06/10(金) 15:46:15ID:???class Oya { public function func() { return "親クラス"; } }
class Ko extends Oya { public function func() { return "子クラス"; } }
$obj = new Oya;
echo $obj->func(); // ここでは$objは親クラス
$obj = new Ko;
echo $obj->func(); // ここでは$objは子クラス
これはポリモーフィズムではないよな。
0170nobodyさん
2005/06/10(金) 16:14:54ID:???0171nobodyさん
2005/06/10(金) 16:25:48ID:???Javaしかやったことないから分からないんだろうな。
>>169 は数学も形で覚えるタイプ。
0173nobodyさん
2005/06/10(金) 21:11:21ID:???ポリモーフィズムとか言わないけどね
この馬鹿について語らないか?
0174nobodyさん
2005/06/10(金) 22:00:43ID:???(現場ではあまり)ポリモーフィズムとか言わないけどね
という意味か?
0175nobodyさん
2005/06/10(金) 22:00:46ID:Ba+L/9uuスレッドのタイトルが『PHPでオブジェクト指向プログラミング』となっているのだから、
相手を貶めたい人やらプロだのアマだのにこだわりたい人は邪魔ですよ。
この流れではスレッドの趣これい旨に沿った話題の展開さえままならない。
これ以上続けられても迷惑なばっかりなのでそろそろ止めてくれ。
小学生でも無いだろうし、お互い大人になろうよ。
0176nobodyさん
2005/06/10(金) 22:04:25ID:???ポリモーフィズム∈OOP
じゃないのか?
それにSmalltalkもObjCも型付け出来ないぞ。
静的型付けは確かに有用だが、
OOPに必ずしも必要という訳ではない。
それぞれの利点を考慮して
言語の性質に見合った設計をしていく事が大切だと俺は思う。
0177nobodyさん
2005/06/11(土) 00:19:38ID:???多態って言うなぁ
漢字にした方が、初心者の人でも、何のことかイメージしやすいし
相手が理解できない専門用語を言って満足してるアホみたいだから、横文字は好きじゃない
0180169
2005/06/11(土) 01:57:38ID:???ポリモーフィズムじゃヤダとか駄々をこねるので仕方なく多態でいってやろう。
だいたいお前の職場だろうがこのスレだろうが意味が通じることが重要ってのがお前の主張じゃないのか?
少なくともこのスレではポリモーフィズムを多態と言わなかったがための誤解なんてなかった気がするが。
>>176
俺はPHPには型がないからOOじゃないなんて言ってない。
PHPでOOP的な多態がどういう位置付けなのかを疑問に思っただけ。
Smalltalkを持ち出すってことは>>169も多態ってことになるんだろうが、そんなこと言ったらPHPにオブジェクト指向が導入される前からある言語仕様も全て多態って話になるだろ。
全ての変数は内部的に数値なのか文字列なのか配列なのかオブジェクトなのか、、、によって実行時に動的に振る舞いが決まるわけだからな。
0181nobodyさん
2005/06/11(土) 11:07:10ID:???それを阻む奴は、とことん攻撃するみたいなw
0182nobodyさん
2005/06/11(土) 12:01:10ID:???散々暴れて散々叩かれて消滅したが、実は何かをわかってて釣っていたのだろうか。
いや、それはない(反語)。
で、PHPのポリモーフィズムって結局何なのさ?
オブジェクト指向を謳うなら一言説明がほしいとこだ。>PHP
0183nobodyさん
2005/06/11(土) 23:59:38ID:???だからJAVA厨は嫌われるんだよ。
PHPでOOPやってる奴なら常識なのに。
0185nobodyさん
2005/06/12(日) 01:10:40ID:???お前も多態とか言って誤魔化しとけよwww
0186nobodyさん
2005/06/12(日) 02:11:20ID:???ポリモーフィズムというのはOOが持つ特性であって、
開発者がポリモーフィズムであることを意図していない機能は
それに「見えるような」振る舞いをしたとして、
あなたがそれをポリモーフィズムだと言っても、
それはあくまで主観(というかあなたの勝手な認識)でしかない。
0187nobodyさん
2005/06/12(日) 03:21:50ID:???引数や実行される環境によって振る舞いを変えればいいわけだし。
メンテナンス性などを考えればOOPな方がいいだろうけど。
PHP4での例とすれば、PEAR::DBなんかはポリモーフィズムじゃない。
DB::connectは渡されたDSNから判断して、DB_commonを継承した
各DBのサブクラスをインスタンス化して委譲することによって
多くのDBに対応している。
↓勘違いしてたらツッコミよろ↓
0188180
2005/06/12(日) 04:43:28ID:???微妙にワロタ
>>186
俺の言いたいのはあくまで
>PHPでOOP的な多態がどういう位置付けなのかを疑問に思っただけ。
であって
>(〜中略〜)ってことは(〜中略〜)全て多態って話になるだろ。
はただの推論なんで、そこに茶々いれられても。
(そこつっこんだわけじゃなかったならスマソ)
まー言語の開発者がポリモーフィズムを意図したかどうかに焦点があるべきなのは同意。
ただ直接聞くわけにもいかないからここで話してるわけで。
>>187
同意。たしかにそういうのもポリモーフィズムと言えると思う。
PEARに限らずPHPを使う側が意図してポリモーフィズム的な振る舞いを実装することはできる。
あとはPHPの言語仕様自体にポリモーフィズムがどう盛り込まれてるかって話。
はっきり言ってアフォな俺にはなかなかわからない。
0189187
2005/06/12(日) 05:42:38ID:???>あとはPHPの言語仕様自体にポリモーフィズムがどう盛り込まれてるかって話。
俺はJavaを知らない(つーかRubyもC++も知らん)のだけど、Javaにはどのように
盛り込まれているの? インターフェイスがそうなのか? それとも抽象クラスやメソッドを
定義できること?
0190nobodyさん
2005/06/12(日) 06:25:01ID:???Oya obj = new Ko();
obj.func();
で子クラスのメソッドが呼ばれる。
C++の場合は親クラスのメソッドにvirtualっていうキーワードをつけないと親クラスのメソッドが呼ばれてしまう(objがOya型として宣言されているため)。
ルビーは知らない。
0191nobodyさん
2005/06/12(日) 10:32:33ID:???0192nobodyさん
2005/06/12(日) 10:34:06ID:???0193nobodyさん
2005/06/12(日) 10:34:48ID:???0194nobodyさん
2005/06/12(日) 11:06:09ID:???188 名前:180[sage] 投稿日:2005/06/12(日) 04:43:28 ID:???
>>183-185
微妙にワロタ
0195nobodyさん
2005/06/12(日) 12:23:54ID:???0196nobodyさん
2005/06/12(日) 12:38:57ID:wbP1UJDj誰もわかんないのかよー!
俺もわかんないよー!
ヤケクンのアゲ
0198nobodyさん
2005/06/12(日) 14:06:38ID:???0200nobodyさん
2005/06/12(日) 17:57:05ID:wbP1UJDjVBかよ
0201nobodyさん
2005/06/12(日) 18:08:57ID:???OOPに標準とかあるのか知らないのが、とりあえず
ttp://www.computerlanguage.com/webexamples.htm
での検索結果によると、
>the ability of a generalized request (message) to produce different results based on the object that it is sent to
ま、OOP的に言えば、同じ名前のメソッドでもインスタンスの動的な状態(実行時の状態)に応じて適切にメソッドが呼ばれるってことだと解釈しておけばいいんじゃないの?
とりあえず俺も>>197の意見が聞きたい
0203nobodyさん
2005/06/13(月) 11:30:16ID:???0204nobodyさん
2005/06/13(月) 11:38:44ID:???$obj->method();
}
f を呼び出したとき $obj がどのクラスなのかに応じて適切な method() が呼び出されるわけだが。
0205nobodyさん
2005/06/13(月) 15:04:45ID:???0206nobodyさん
2005/06/13(月) 15:18:16ID:???わけだが。
0207nobodyさん
2005/06/13(月) 15:43:38ID:???そのコード読んで思ったんだけど、ビュークラスやDBクラスを分けてオブジェクト指向っぽく取り扱ったところで、糞分かりづらいだけでまったく意味ねえな、と。
0208nobodyさん
2005/06/13(月) 16:21:03ID:???0209nobodyさん
2005/06/13(月) 23:29:38ID:???いろんな型のデータを区別せずに扱えますよ、
ということだと認識してる。
同じ扱いなのに、実際のふるまいがポリモってるよ!という感じ?
だもんで、型がない場合は、その時点でてけとうに
ポリモーフィズムが実現されすぎちゃって困ってる、
という状況なんだと思われ。
型で制約されている場合でも、仮想関数表なんかを管理しとけば
どっこいポリモれちゃうんですよ奥さん、と。
(もともとは関数型言語方面で、このリスト型だとどんな型の値でも
ぶらさがりますよ、とか、関数を引数の型の微妙な違いで
オーバーロードできますよ、とかいうのがポリモーフィズム
だったらしいけど、OOP方面ではふつうそういうのまで
ポリモーフィズムとは言わない、よね?)
0210nobodyさん
2005/06/14(火) 03:02:54ID:???0211nobodyさん
2005/06/14(火) 03:17:23ID:???同意。
実装をする側がクラスごとに適切に書いておけば、それを使う側はオブジェクトごとにいちいち区別しなくても同じように使えて正しく動く。
それがOOP的ポリモーフィズムの利点だわな。
ま、
>ポリモーフィズムが実現されすぎちゃって困ってる
のかどうかは微妙な線だが、PHPなどの型なし言語はもともとポリモーフィズム的振る舞いをしていたから、殊にPHPでOOを導入する時に「この部分がポリモーフィズムだよ」という必要がなかったってこっちゃな。
>もともとは関数型言語方面で、(・・・)、とかいうのがポリモーフィズム
ってのは初めて知った。
0213nobodyさん
2005/06/14(火) 04:02:57ID:???0214nobodyさん
2005/06/14(火) 05:12:52ID:???違ったモノに同じ命令で言うこと聞かせられるようにすることだよ。
0215nobodyさん
2005/06/14(火) 10:10:02ID:???0217nobodyさん
2005/06/14(火) 16:20:27ID:???でも>>214でなんか少しわかった気がする。
動的束縛がなんちゃらとか、なんかすでにポリモーフィズムをわかっている人にしかわからない言葉を説明に使わないでほしい。
難しそうなことをいろいろ知ってるのはわかったから、それをわかりやすく説明できるようになってほしい。
でないとあんたらの頭の良さは全然伝わらないってことに気づいてほしい。
0218nobodyさん
2005/06/14(火) 17:03:30ID:???ある親クラスを継承した子クラスがすべて同じ名前のメソッドを持っていて
オブジェクトが変わると同じメソッドでも振舞いが変わるというように
理解したんだけど違う?
0219nobodyさん
2005/06/14(火) 17:42:45ID:???○ 振る舞いを変えることができる(メソッドのオーバーライド(override : 覆す、無効にする))
0220nobodyさん
2005/06/14(火) 18:06:57ID:???もともとここは初心者に説明するためのスレじゃないし
話の流れ的にも >>197 の講釈を待ってる間に野次馬ががやがや言ってるだけかと
素直に「動的束縛ってなんのことだかわからないので教えてください」と頭を下げれば
親切な人が教えてくれるんじゃないか
0221nobodyさん
2005/06/14(火) 19:59:09ID:???0224nobodyさん
2005/06/15(水) 02:40:19ID:???リスコフの置換原則は次のように謂う、
「派生クラスは、ユーザーが基底クラスとの違いに気付かずに、
基底クラスのインターフェイスを通じて使用できるものでなければならない。」
とゆうことは、
継承したクラスで独自にメソッド増やすのはよろしくないってこと?
0225224
2005/06/15(水) 02:42:17ID:???0226224
2005/06/15(水) 02:49:04ID:???基底クラスのメソッドは
継承クラスも基底クラスと同様に実装しておけってことで、
新しいメソッドを持つなって言ってるんじゃないね。そりゃそうか…
0227nobodyさん
2005/06/15(水) 03:19:21ID:???0228nobodyさん
2005/06/15(水) 03:42:43ID:???0229nobodyさん
2005/06/15(水) 03:46:15ID:???0230nobodyさん
2005/06/15(水) 04:30:26ID:???あーなんか静的束縛の説明が微妙にあやしーと思って一旦エディタに移動させたら
失敗して消えて頭もまっしろんなってる厨のいるスレはまさにここですYO
0231nobodyさん
2005/06/15(水) 07:50:33ID:???◆まずは下準備として、親クラス←子クラス←孫クラスという継承関係とする。
↓のように、親クラスでfuncというメソッドを宣言し、孫クラスでのみオーバーライドする。
class Oya { func() {return "親";} }
class Ko extends Oya { }
class Mago extends Ko { func() {return "孫";} }
◆ここで子クラスのオブジェクトobjを宣言してみる。
↓のように、ユーザ入力など実行するまで未定な要素をからめたコードを書く。
Ko obj; /* 子クラスのオブジェクトとして宣言。 */
switch ( ユーザ入力 ) {
case "子": obj = new Ko();
case "孫": obj = new Mago();
}
/* ここで問題。 */
obj.func();
◆さて、実行時にユーザが"孫"と入力した場合について考えてみる。
objにはnewによって孫クラスの実体(の参照)が代入されました。
obj.func()は"親"を返すのか?それとも"孫"を返すのか?
もう一度書いておくけど、objは親でも孫でもなく、子クラスとして宣言されたオブジェクト。
0232nobodyさん
2005/06/15(水) 07:51:09ID:???静的束縛なら"親"。
動的束縛なら"孫"。
なぜか?
◆静的束縛は、実行する以前に、
「objは子クラスなのだから、子クラスのfuncを呼び出せばいーだろ」
と決めつける。
子クラスは親クラスを継承している(つまり含んでいる)ので、親クラスのfuncが呼ばれる。
◆動的束縛は、実行時に、
「objが参照しているのは孫クラスの実体だから、孫クラスのfuncを探そう」
と柔軟に対処する。
孫クラスでfuncはオーバーライドされているので、その孫クラスのfuncが呼ばれる。
もちろん、もしオーバーライドされていなければ継承元クラスのfuncが呼ばれる。
つまり、静的=実行前、動的=実行時ってこと。
束縛という言葉が意味不明にきこえるかもしれないが、これは英語のbindingをアフォな人が和訳したため。
元々は「結びつける」というくらいの意味。
C++はデフォルトで静的束縛。JAVAはデフォルトで動的束縛。
0233nobodyさん
2005/06/15(水) 07:51:22ID:???静的束縛=実行前にメソッド決定=今時イラネ
動的束縛=実行時にメソッド決定=多態性の実現
ちなみに動的束縛・静的束縛の話題は、PHPのような型なし言語とはカンケーない。
よってスレ違い。
以上。
0234nobodyさん
2005/06/15(水) 16:39:11ID:???型のあるなしと関係あるん?
0236nobodyさん
2005/06/15(水) 20:23:54ID:???.______゙!lllll!l!llll!! ,llllllllllllllliiiiiii,,,,,,,、
.llllllllllllllllllllllllllllllllllllllll` ゙゙゙゙゙!!!!!!llllllllllllllll!
.l!!!!!!!!!!!!!!!!!!!!!!llllllllll .,iiiiiii,,,,,,,,゙゙゙゙゙!!!l゜
llllllllll lllllllllllllllllllliiiii,,,
llllllllll `゙゙゙゙゙!!!!lllllllll゜
_______,llllllllll .,illllliiiiiiii,,,,,,,, ゙゚゙゙′
lllllllllllllllllllllllllllllllllllllllll l!!!!llllllllllllllllllllliiiii,,,,,,、
'!!!!!!!!!!!!!!!!!!!!!!!lllllllll| ゙゙゙゙゙゙!!!!lllllllllllll!:
゙゚゙゙゙!!°
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,、 ,,,,,,,,,,
.lllllllllllllllllllllllllllllllllllli、 lllllllllll
.'゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙lllllllllll゙′ llllllllll
,illllllllll゙` .llllllllll| ,,,i,,
,,iillllllllll゙` llllllllll| ,,,iilllllllli,
,,,iillllllllllllllllii,,, .lllllllllll .,,,iiilllllllllll!!゙゜
,,,,,iilllllllllllll!!!llllllllllllii,,、 llllllllll|.,,,,iiillllllllllll!!゙’
..liillllllllllllllll!!゙’ ゙゙!llllllllllllii、 .llllllllllllllllllllllll!!゙゙`
: ゙゙lllllll!!!゙゙` ゙゙!lll!!゙゜ .゙!lllllllllll!!!゙゙゜
.゙゙゛ : `゙゙゙゙″
0238nobodyさん
2005/06/16(木) 01:25:30ID:???0239nobodyさん
2005/06/16(木) 18:57:06ID:???・DBからデータを取得する場合、1要素づつオブジェクトにいれて、
それの集合体オブジェクトに追加していくものなのでしょうか。
・そうだとしたら検索する関数は、1要素づつのクラスのメンバでしょうか、
集合体のクラスのメンバなのでしょうか。
例えば請求書オブジェクトは、請求明細一覧オブジェクトをメンバとしています。
請求明細一覧は、請求明細のあつまりです。
請求書オブジェクトを生成する際の請求明細一覧を生成するロジック?が
わからないんです。どなたかよろしくお願いします。
0240nobodyさん
2005/06/16(木) 19:48:57ID:???( ゚д゚) ・・・・・?
0241nobodyさん
2005/06/16(木) 19:49:57ID:???その明細一覧というのがが、均質な項目をイパーイあつめた単なる表のような
データであって、かつ、一種類のメソッド群でさばききれる(多態性がいらない)んであれば、
たぶんそうこまかくする理由ってみつかりにくいんじゃないか。という気はするYO。
たいして効率に影響しなくて使いやすくてメンテ等もしやすければいいんだろうけどね。
0242nobodyさん
2005/06/16(木) 20:34:29ID:???めちゃめちゃ混乱してますな。
「請求書オブジェクト」という概念は捨てた方がいいんではないかと。
全て1つのオブジェクトに突っ込んでしまうのではなく、オブジェクトを役割ごとに分けるのも必要。
検索部分は検索結果とは別個のオブジェクトにすることが多いし、
検索結果は1レコードを保持できるオブジェクトとして設計することが多いと思う。
検索オブジェクトから検索結果オブジェクトのインスタンスがたくさん返ってくるイメージ。
それらをまとめて管理したいなら、複数の検索結果オブジェクトを1つにまとめる専用の
オブジェクトを更に別個に設計したりするわけだが、検索結果が多い場合や1レコードあたりのメモリ
占有量が大きい場合は、そういう概念で設計すると検索結果を全部メモリに読んでしまい
メモリを圧迫する結果になる。
1レコードずつDBから読んでは捨て読んでは捨てした方が効率がいい場合もあるわけ。
0243239
2005/06/16(木) 21:43:06ID:???独学の悲しさか何がわからないのかわからない程混乱してます。
もっとシンプルな例えとして「部署一覧」や、「部署コードから部署名」を検索する場合、
・部署一覧クラス(部署単体クラスの集まりをデータにもつ)
・部署クラス(部署単体のクラス)
・DBクラス(DBへアクセスしてSQLを実行する)
が必要かなと思うのですが(間違ってますでしょうか?)
■DBクラスのSQLを実行するfunction query($sql)は
何を返すべきなんでしょう。
1.部署オブジェクトの配列(さらに部署一覧オブジェクトに読み込む)
2.部署一覧オブジェクト
3.部署名の配列。それを改めて部署オブジェクトに読み込む(さらに
部署一覧オブジェクトに読み込む)
4.部署名の配列。それを部署一覧オブジェクトに読み込む。
■部署一覧を取得するfunction bushoList()と、部署名を検索するfindBusho($key)は
1.両方とも部署一覧クラスのメンバにする
もし該当部署がひとつしかなくても配列がひとつしかないとして処理する
2.findBusho($key)がひとつしかないことがわかっていれば
bushoList()は部署一覧クラス・findBusho($key)は部署クラスのメンバにする
3.両方とも部署クラスのメンバにして、複数の部署名の場合に
部署一覧オブジェクトを生成してそれに入れ込む。
なにを悩んでいるかわかっていただけますでしょうか。
エスパー能力をあてにしてすみません、お願いします。
多分、
>>241
細かくする理由が無い場合、どういうクラスにしたらいいのかわからないです。
>>242
読んでは捨て読んでは捨てというのは具体的にどうしたらいいのか
わからないです。
単純に請求書一覧を得るとか部署一覧を得るとかなら配列を使うなりして
できるのですが、オブジェクト指向だとどうするのかがさっぱりです。
0244nobodyさん
2005/06/16(木) 22:42:39ID:???> ■DBクラスのSQLを実行するfunction query($sql)は何を返すべきなんでしょう。
1〜4のどれでもいいのではないかと。データの内容や量、処理の内容によって
どれを選ぶかもプログラマの腕にかかってるわけで。
あと、DBオブジェクトとデータにアクセスするオブジェクトは別々に設計した方がいいのではないかと。
> ■部署一覧を取得するfunction bushoList()と、部署名を検索するfindBusho($key)は
自分だったらDBクラスを持った部署データを専門に扱う「人事課」みたいなオブジェクトを作るかな。
$jinji = new jinji();
$bushoList = $jinji->bushoList();
$bushoList2 = $jinji->findBusho('shomu');
bushoListやfindBushoが何を返すかは最初の疑問の答えを参照。
> 読んでは捨て読んでは捨てというのは具体的にどうしたらいいのか
例えば、検索結果を全部一度に配列にぶちこむのではなく、ループの中で
1つの変数に1レコードずつ結果を代入して処理する。ループが回るごとに
その変数は上書きされるから配列にぶちこむのに比べてメモリを食わない。
0245nobodyさん
2005/06/16(木) 23:30:18ID:???クラスに関数をまとめるだけで十分だよ。
オブジェクト指向の勉強するなら、JavaとかRubyとかにした方がいい。
0246nobodyさん
2005/06/16(木) 23:47:48ID:???大規模開発になると避けて通れなくなるよ。PHPのなんちゃってオブジェクト指向でも
利用する価値はある。
最近、「クラスに関数まとめるだけ」で適当に作ったサイトがつぎはぎで巨大化するにつれ
保守が間に合わなくなって破綻したのでなんとかしてくれっつー依頼が多い。
まあ逆にフレームワークとかテンプレートエンジンとか詰め込みすぎて負荷でパンクした
サイトも知ってるけど。
> オブジェクト指向の勉強するなら、JavaとかRubyとかにした方がいい。
これは同意。
0247nobodyさん
2005/06/16(木) 23:50:59ID:???0248nobodyさん
2005/06/17(金) 00:02:32ID:???PHPのよさは手軽にかけることなんだから。
0249nobodyさん
2005/06/17(金) 00:06:10ID:???0250239
2005/06/17(金) 00:11:43ID:???つ、ついていけない…。「これ以上どうやさしく説明すればいいんだよ」
と怒られそうですが。(丁寧に説明いただいてるは語感からわかります。
感謝です。)
■DBオブジェクトとデータにアクセスするオブジェクトって
どう違うものなのでしょうか?(あ、何か日本語も変だ)
■人事課オブジェクトを作るというのは…
今回の程度の場合、細分化して部署クラスとかを作るんじゃなくて、
(例えばそれはデータメンバの変数にしたりして)操作するクラスを
つくるという解釈でいいでしょうか。
クラスにするものの勘所が全然つかめない…。
0251nobodyさん
2005/06/17(金) 00:23:58ID:???PHPでも工夫すればオブジェクト指向開発できるって言っても、そんな不毛な工夫するより、その言語に適した開発アプローチを取るべきだと思う。
0252239
2005/06/17(金) 00:27:02ID:???>>247
「したいぜ」というか「してみたいぜ」です。みなさんは、「できるけど
やらない。」なのでしょうけど、私は「できない」のでやり方は知って
おきたいのです。
何をクラスにするのかは、案件によって違ってくるんでしょうけど、
なんというか、こう常套手段のようなものを例示してもらえないかなと
思ってるんですよ。例えばDBがあって、そこからデータを引っ張ってきて
そのデータを扱うという操作についてとか…。デザインパターンと実際の
(この例みたいなの)が結びつかないんです。
面と向かって尋ねられる人がいればもう少し理解がはやいのかなとも
思うのですがいないもので。
■ このスレッドは過去ログ倉庫に格納されています