【PHP】下らねぇ質問はID出して書き込みやがれ 89at PHP
【PHP】下らねぇ質問はID出して書き込みやがれ 89 - 暇つぶし2ch892:nobodyさん
09/11/10 02:57:15
OOP本のサンプルって、
Animalクラスを継承してDogクラスとかCatクラスを作るって例が多いけど、
わかりやすいようで解りづらいよなw

893:nobodyさん
09/11/10 03:10:25
>>892
>Animalクラスを継承してDogクラスとかCatクラスを作るって例
この手の解説は参考にならないって、歴史が証明してるよなw

894:nobodyさん
09/11/10 03:44:55
最初は関数で作って、後々追加案件で処理毎にクラス化してる
配列でまとめてあると、後で弄り易い。

895:nobodyさん
09/11/10 05:31:53
それ、クラスである必要があるコードでなかったりしないか

896:nobodyさん
09/11/10 06:59:46
>>893
そういう概念の話は腐るほど聞いても、じゃあいざ実装しようとすると
あれどれがDogでAnimalなんだっけ、いやそもそもクラスにする必要あるのかこれ?
と思考の海に沈む

まっとうなOOP本読めばいいんだろうけど

897:nobodyさん
09/11/10 08:03:12 T58KxytE
同じような方向の質問になるけど
PEARとかでよくファクトリークラス(?)を使って
クラスからクラスを作ってたりするけど、
あれってどういう理由があるの?

898:nobodyさん
09/11/10 09:28:55
>>897
URLリンク(www.techscore.com)

899:nobodyさん
09/11/10 09:41:10 lbGcCYju
自分はフォームのパーツを生成する機能をまとめてクラスにしてるんだ
$fmPartsCrass->getUTypePD(10); //DBの登録値10をselectedとするユーザタイプのプルダウンを作る
$fmPartsCrass->uTypeToTXT(10); //フォームの確認画面で、選択値10のユーザタイプを出力する
クラス内のinit()ではプルダウン元になるname,valueの二次元配列を沢山読み込ませてる感じ。
こんなので良いのかな? クラスの使い方って。。

900:nobodyさん
09/11/10 09:56:23
俺の好みで言うと、コーディング時に種類が決まってるパーツは
new classNameで明示的にインスタンス化したいな。
パラメータ指定してインスタンス作ってからaddとかするように
書くだろうな。
ま、好みの話だからさらっと流してくれ。

901:nobodyさん
09/11/10 09:57:06
今気づいたがクラスはCrassじゃなくてClassだなw
アホすぎワロタ

902:nobodyさん
09/11/10 10:04:28
>>895
関数にすると値渡しが面倒なんだわ
特にお金関係は。

903:nobodyさん
09/11/10 10:25:02
>>895は「最初は関数で作って」おけるような物なら、
クラス化する必要なくね?って事だと思う。

俺はそうは思わないけど。

904:nobodyさん
09/11/10 10:51:32
ちょっとでも楽になるか、それともクラスにする手間を惜しむか、
必要があるかどうかは結局その人の感覚次第でしょ

905:nobodyさん
09/11/10 11:05:09
どっちが楽かも人によるしね。
でも、殆どの人にとって、クラス化は最初は楽じゃないんだよね。
だから壁を越えようとしない人も多いんだろう。

壁を越えた向こうには、素敵な楽園が広がって・・・ るわけでもないし。
待ってるのは次の壁と、無間壁越え地獄w

906:899
09/11/10 11:50:11
上で書いた例ってヘンですか?
自分じゃ間違ってないだろって気持ちと、これはfunctionを束ねただけのものじゃないかって
気持ちが半分半分です。
バラしたら関数として独立化できるものはclassにする必要ないのかななんて考えると
全部そうだろうという気持ちがでてくるし…

907:nobodyさん
09/11/10 11:57:28
>>906
functionを束ねただけのものですね

908:nobodyさん
09/11/10 11:58:15
変数名にCl(r)assの文字がある時点でおかしいと思うべきだな

909:nobodyさん
09/11/10 12:01:22
>>906
汎用性を持たせればいいんじゃね?
リスト意外にもラジオボタンや複数選択でも出力、クラス指定で見た目も変えれるとか

910:nobodyさん
09/11/10 12:03:13 HgEfIoEe
くだらない質問ですがよろしくお願いします。
ソースを見ていたら
<?= $test ?> という書き方をしている箇所を見つけました。
コードを書くときは<?php ?>で囲うと本には書いてありましたが
<?php print($test) ?> と、どう違うのでしょうか。
あまり見かけないということは何か問題のある記述方ですか?

911:nobodyさん
09/11/10 12:03:50
だから自分の基準は
 「素材があって、料理する方法が複数ある場合」
はクラスにするようにしてる

912:nobodyさん
09/11/10 12:11:36
>バラしたら関数として独立化できるものはclassにする必要ないのかな

これはその通り。ただ、

>全部そうだろうという気持ちがでてくるし…

こっちは、クラス使える言語でなら、そういうのはやめた方がいいぞ。
データってもんを無視すれば全部そうできるかもしれんけど。

「関数/手続きに(引数等で)データを渡す」だけで考えても一応全てのプログラムは書けるよ、確かに。
昔はそればっかだったし。


913:nobodyさん
09/11/10 12:20:07
>>910
マニュアル嫁

914:nobodyさん
09/11/10 12:24:15
>>910
前者はそろそろ問題になってきてる。

915:nobodyさん
09/11/10 12:36:32
別にクラスを 関数をひとくくりにするためだけに使ってもいいんだよ。

916:nobodyさん
09/11/10 13:07:19 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
09/11/10 13:11:58
皆さんどうもありがとう
>>915
そうなんですか? そうだとしたら安心(?)しました
何度も同じコード書きたくなくて関数化してまとめてみようと思ったのがきっかけでした
クラスの継承とかpublic指定した変数の外部から参照とかしないんで、
複数の関数で使う変数の値やDB接続処理をinit()内部で定義すればいっぺんに書き換えられる、
まとめていつでも呼び出せる以上の利便性なんて感じないんですよね。それで十分だし。
何か損してるのかな。。

918:nobodyさん
09/11/10 13:16:16
言外の意図を読み取れないのかきみは

919:nobodyさん
09/11/10 13:37:25
>>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さん
09/11/10 16:32:26 k/b4LSiu
よろしくお願いします。

function &set() {
     ↑このアンドマークの意味を教えてください。

921:nobodyさん
09/11/10 16:45:26
記述ミス

922:nobodyさん
09/11/10 18:02:30 hMuYWgxi
PDO::ATTR_PERSISTENT=>true として PDO::prepare を使った場合、prepare ステートメントは接続が維持されている限りキャッシュされていて、前回のキャッシュをphpが勝手に使ってくれるという動作をするのでしょうか?
DBサーバーはpostgresqlです

923:nobodyさん
09/11/10 19:01:07
>>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さん
09/11/10 19:03:05
>>920
URLリンク(www.php.net)

925:nobodyさん
09/11/10 20:40:43 k/b4LSiu
>>924
ありがとうございます。
こちらで質問して良かったです。

926:nobodyさん
09/11/10 21:11:57 Yr8QXJQk
>>923
ありがとうございます
しかし劇的に軽量化が出来ないかと思いましたが残念です
pgsqlで関数として定義にしておけば計量化したりしないものだろうか…

927:nobodyさん
09/11/10 21:28:36
君のシステムはDBの接続が継続してたら軽量化するの?

928:nobodyさん
09/11/10 21:31:00 Yr8QXJQk
そうですね、view使えばいいんですね。
ちゃんと勉強しましょう…。

929:nobodyさん
09/11/10 23:50:57 efP4W3lX
GoogleのようなAND検索を実装しようとしています。

以下のように空白で区切ろうと考えています
preg_split('/\p{Z}+/', $query);

単純な区切りでは問題ないのですが、
test aaaa => array('test', 'aaaa');

以下のように一単語として検索したい場合の正規表現が分かりません。
"test aaaa" test => array('test aaaa', 'test');

分かる方お願いします。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch