1 名前:● mailto:sage [2009/10/11(日) 21:18:54 ID:???] 質問者はまず>>1 を良く読むこと(必須!) 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 88 pc11.2ch.net/test/read.cgi/php/1253061577/ ◆質問用テンプレ 【OS名】vine linux 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
888 名前:nobodyさん mailto:sage [2009/11/10(火) 00:04:02 ID:???] 学校にもAクラス、Bクラスってあるだろう。 それと同じ意味だよ。 A組 が 廊下掃除担当 B組 が 体育館掃除担当 C組 が プール掃除担当 という感じにクラス毎に役割を振っておけば、 後々管理が楽になるだろう? 「廊下に関する事なら、A組に聞けばいい。」 ってな具合で。
889 名前:nobodyさん mailto:sage [2009/11/10(火) 00:22:25 ID:???] 関数とオブジェクトのローカル変数をセットにしておける。 継承が使える。 これだろ。
890 名前:nobodyさん mailto:sage [2009/11/10(火) 00:28:25 ID:???] 無駄に難しく考えないで、自分のレベルで便利に使えるところから使えばいいんだよ。 クラスつかうなんてのは、手段であって、目的ではないからな。
891 名前:nobodyさん mailto:sage [2009/11/10(火) 02:31:13 ID:???] 同じく、システムの中である程度一貫性持ってれば扱い方は人によって個性出てもいいと思う
892 名前:nobodyさん mailto:sage [2009/11/10(火) 02:57:15 ID:???] OOP本のサンプルって、 Animalクラスを継承してDogクラスとかCatクラスを作るって例が多いけど、 わかりやすいようで解りづらいよなw
893 名前:nobodyさん mailto:sage [2009/11/10(火) 03:10:25 ID:???] >>892 >Animalクラスを継承してDogクラスとかCatクラスを作るって例 この手の解説は参考にならないって、歴史が証明してるよなw
894 名前:nobodyさん mailto:sage [2009/11/10(火) 03:44:55 ID:???] 最初は関数で作って、後々追加案件で処理毎にクラス化してる 配列でまとめてあると、後で弄り易い。
895 名前:nobodyさん mailto:sage [2009/11/10(火) 05:31:53 ID:???] それ、クラスである必要があるコードでなかったりしないか
896 名前:nobodyさん mailto:sage [2009/11/10(火) 06:59:46 ID:???] >>893 そういう概念の話は腐るほど聞いても、じゃあいざ実装しようとすると あれどれがDogでAnimalなんだっけ、いやそもそもクラスにする必要あるのかこれ? と思考の海に沈む まっとうなOOP本読めばいいんだろうけど
897 名前:nobodyさん [2009/11/10(火) 08:03:12 ID:T58KxytE] 同じような方向の質問になるけど PEARとかでよくファクトリークラス(?)を使って クラスからクラスを作ってたりするけど、 あれってどういう理由があるの?
898 名前:nobodyさん mailto:sage [2009/11/10(火) 09:28:55 ID:???] >>897 ttp://www.techscore.com/tech/DesignPattern/AbstractFactory.html
899 名前:nobodyさん [2009/11/10(火) 09:41:10 ID:lbGcCYju] 自分はフォームのパーツを生成する機能をまとめてクラスにしてるんだ $fmPartsCrass->getUTypePD(10); //DBの登録値10をselectedとするユーザタイプのプルダウンを作る $fmPartsCrass->uTypeToTXT(10); //フォームの確認画面で、選択値10のユーザタイプを出力する クラス内のinit()ではプルダウン元になるname,valueの二次元配列を沢山読み込ませてる感じ。 こんなので良いのかな? クラスの使い方って。。
900 名前:nobodyさん mailto:sage [2009/11/10(火) 09:56:23 ID:???] 俺の好みで言うと、コーディング時に種類が決まってるパーツは new classNameで明示的にインスタンス化したいな。 パラメータ指定してインスタンス作ってからaddとかするように 書くだろうな。 ま、好みの話だからさらっと流してくれ。
901 名前:nobodyさん mailto:sage [2009/11/10(火) 09:57:06 ID:???] 今気づいたがクラスはCrassじゃなくてClassだなw アホすぎワロタ
902 名前:nobodyさん mailto:sage [2009/11/10(火) 10:04:28 ID:???] >>895 関数にすると値渡しが面倒なんだわ 特にお金関係は。
903 名前:nobodyさん mailto:sage [2009/11/10(火) 10:25:02 ID:???] >>895 は「最初は関数で作って」おけるような物なら、 クラス化する必要なくね?って事だと思う。 俺はそうは思わないけど。
904 名前:nobodyさん mailto:sage [2009/11/10(火) 10:51:32 ID:???] ちょっとでも楽になるか、それともクラスにする手間を惜しむか、 必要があるかどうかは結局その人の感覚次第でしょ
905 名前:nobodyさん mailto:sage [2009/11/10(火) 11:05:09 ID:???] どっちが楽かも人によるしね。 でも、殆どの人にとって、クラス化は最初は楽じゃないんだよね。 だから壁を越えようとしない人も多いんだろう。 壁を越えた向こうには、素敵な楽園が広がって・・・ るわけでもないし。 待ってるのは次の壁と、無間壁越え地獄w
906 名前:899 mailto:sage [2009/11/10(火) 11:50:11 ID:???] 上で書いた例ってヘンですか? 自分じゃ間違ってないだろって気持ちと、これはfunctionを束ねただけのものじゃないかって 気持ちが半分半分です。 バラしたら関数として独立化できるものはclassにする必要ないのかななんて考えると 全部そうだろうという気持ちがでてくるし…
907 名前:nobodyさん mailto:sage [2009/11/10(火) 11:57:28 ID:???] >>906 functionを束ねただけのものですね
908 名前:nobodyさん mailto:sage [2009/11/10(火) 11:58:15 ID:???] 変数名にCl(r)assの文字がある時点でおかしいと思うべきだな
909 名前:nobodyさん mailto:sage [2009/11/10(火) 12:01:22 ID:???] >>906 汎用性を持たせればいいんじゃね? リスト意外にもラジオボタンや複数選択でも出力、クラス指定で見た目も変えれるとか
910 名前:nobodyさん [2009/11/10(火) 12:03:13 ID:HgEfIoEe] くだらない質問ですがよろしくお願いします。 ソースを見ていたら <?= $test ?> という書き方をしている箇所を見つけました。 コードを書くときは<?php ?>で囲うと本には書いてありましたが <?php print($test) ?> と、どう違うのでしょうか。 あまり見かけないということは何か問題のある記述方ですか?
911 名前:nobodyさん mailto:sage [2009/11/10(火) 12:03:50 ID:???] だから自分の基準は 「素材があって、料理する方法が複数ある場合」 はクラスにするようにしてる
912 名前:nobodyさん mailto:sage [2009/11/10(火) 12:11:36 ID:???] >バラしたら関数として独立化できるものはclassにする必要ないのかな これはその通り。ただ、 >全部そうだろうという気持ちがでてくるし… こっちは、クラス使える言語でなら、そういうのはやめた方がいいぞ。 データってもんを無視すれば全部そうできるかもしれんけど。 「関数/手続きに(引数等で)データを渡す」だけで考えても一応全てのプログラムは書けるよ、確かに。 昔はそればっかだったし。
913 名前:nobodyさん mailto:sage [2009/11/10(火) 12:20:07 ID:???] >>910 マニュアル嫁
914 名前:nobodyさん mailto:sage [2009/11/10(火) 12:24:15 ID:???] >>910 前者はそろそろ問題になってきてる。
915 名前:nobodyさん mailto:sage [2009/11/10(火) 12:36:32 ID:???] 別にクラスを 関数をひとくくりにするためだけに使ってもいいんだよ。
916 名前:nobodyさん [2009/11/10(火) 13:07:19 ID:n4Nrgy6L] class Oyabun{function buki(){echo "マシンガン";}} class Kobun extends Oyabun{function buki(){echo "ピストル";}} class zako extends Kobun{function buki(){echo "鉄パイプ";}} クラスKobunからクラスOyabunのメソットbukiを呼び出してマシンガンって表示させることはできましたが クラスzakoからクラスOyabunのbukiを呼び出してマシンガンと表示させる書き方がわかりません 直接クラスOyabunで呼ぶ出すのではなくzakoから呼び出す方法をどなたかご指導お願い致します
917 名前:899 mailto:sage [2009/11/10(火) 13:11:58 ID:???] 皆さんどうもありがとう >>915 そうなんですか? そうだとしたら安心(?)しました 何度も同じコード書きたくなくて関数化してまとめてみようと思ったのがきっかけでした クラスの継承とかpublic指定した変数の外部から参照とかしないんで、 複数の関数で使う変数の値やDB接続処理をinit()内部で定義すればいっぺんに書き換えられる、 まとめていつでも呼び出せる以上の利便性なんて感じないんですよね。それで十分だし。 何か損してるのかな。。
918 名前:nobodyさん mailto:sage [2009/11/10(火) 13:16:16 ID:???] 言外の意図を読み取れないのかきみは
919 名前:nobodyさん mailto:sage [2009/11/10(火) 13:37:25 ID:???] >>916 なんか妙な継承だと思うんだな。子分は親分か? >クラスzakoからクラスOyabunのbukiを呼び出してマシンガンと表示させる書き方がわかりません 雑魚が親分を使役するのか? 実はPHPはよく知らないが、 Oyabun::buki(); で呼び出せない? でもなぁ… interface Kouseiin { public function buki(); public function setOyabun($oya); } class Oyabun implements Kouseiin{略} class Zako implements Kouseiin{ private $oyabun; 略 public function tasuketeOyabin(){ $this->oyabun->buki(); } } $chimpira = new Zako(); $chimpira->buki(); $chimpira->tasuketeOyabin();
920 名前:nobodyさん [2009/11/10(火) 16:32:26 ID:k/b4LSiu] よろしくお願いします。 function &set() { ↑このアンドマークの意味を教えてください。
921 名前:nobodyさん mailto:sage [2009/11/10(火) 16:45:26 ID:???] 記述ミス
922 名前:nobodyさん [2009/11/10(火) 18:02:30 ID:hMuYWgxi] PDO::ATTR_PERSISTENT=>true として PDO::prepare を使った場合、prepare ステートメントは接続が維持されている限りキャッシュされていて、前回のキャッシュをphpが勝手に使ってくれるという動作をするのでしょうか? DBサーバーはpostgresqlです
923 名前:nobodyさん mailto:sage [2009/11/10(火) 19:01:07 ID:???] >>922 PDOStatementのデストラクタで毎回削除してしまうようだね ext/pdo_pgsql/pgsql_statement.c > static int pgsql_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC) > { ... > #if HAVE_PQPREPARE ... > if (S->is_prepared) { > spprintf(&q, 0, "DEALLOCATE %s", S->stmt_name); > res = PQexec(H->server, q);
924 名前:nobodyさん mailto:sage [2009/11/10(火) 19:03:05 ID:???] >>920 www.php.net/manual/ja/language.references.php
925 名前:nobodyさん [2009/11/10(火) 20:40:43 ID:k/b4LSiu] >>924 ありがとうございます。 こちらで質問して良かったです。
926 名前:nobodyさん [2009/11/10(火) 21:11:57 ID:Yr8QXJQk] >>923 ありがとうございます しかし劇的に軽量化が出来ないかと思いましたが残念です pgsqlで関数として定義にしておけば計量化したりしないものだろうか…
927 名前:nobodyさん mailto:sage [2009/11/10(火) 21:28:36 ID:???] 君のシステムはDBの接続が継続してたら軽量化するの?
928 名前:nobodyさん [2009/11/10(火) 21:31:00 ID:Yr8QXJQk] そうですね、view使えばいいんですね。 ちゃんと勉強しましょう…。
929 名前:nobodyさん [2009/11/10(火) 23:50:57 ID:efP4W3lX] GoogleのようなAND検索を実装しようとしています。 以下のように空白で区切ろうと考えています preg_split('/\p{Z}+/', $query); 単純な区切りでは問題ないのですが、 test aaaa => array('test', 'aaaa'); 以下のように一単語として検索したい場合の正規表現が分かりません。 "test aaaa" test => array('test aaaa', 'test'); 分かる方お願いします。