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等)・フレームワークは各該当スレへ
790 名前:nobodyさん [2009/11/05(木) 15:22:19 ID:17l6YWCO] ユーザー関数は、あちこちのページで使い回すから当然別のファイルにして、その都度インクルードとかするでしょ。 index1.php ↑インクルード user_func.txt ↓インクルード index2.php でもこうなるとindex1.phpにアクセスするということはuser_func.txtにもアクセスする事になるので、鯖に負担がかかる。呼び込むファイルが増えればなおさら。 負荷を無くすにはどうしたらいいでしょうか? 個人的にできたらいいなと思うのは、この様な自作関数もメモリ上に置けるようにしてほしい。 最初に鯖を立ち上げた時に読み込んで後は元々ある関数みたいに使いたい。
791 名前:nobodyさん mailto:sage [2009/11/05(木) 15:33:59 ID:???] >>790 実際、どの程度の負荷がかかってるのさ? 一度user_func.txtが読み込まれれば、2回目からはメモリを見に行くから気にしなくて良いレベルだと思うぞ。
792 名前:nobodyさん [2009/11/05(木) 16:22:18 ID:17l6YWCO] >>791 えっ?そうなの?って事はindex.phpとかも一回読まれたらメモリ見るの? 知らなかった。どの位の負荷がかかってるかはどうやって調べたらいい? 最近サイトを開くと重いんだよね。特に夜。LAN内のPCからでも遅いから回線が原因じゃないかと思うんだけど HDDがあれこれファイルを読んだりして追いついていけないのかもって思って。 CPU仕様率は結構低いんだけど。LANもギガビットLANだし、原因がHDDとしか思えないんです。
793 名前:nobodyさん mailto:sage [2009/11/05(木) 16:39:49 ID:???] >>792 気になるならdataスキーム形式にして埋め込めばいいよ
794 名前:nobodyさん mailto:sage [2009/11/05(木) 16:55:33 ID:???] >>792 普通は一度ファイルを読み込めば、次回はメモリを参照する。 readで毎回必ずHDDを読んでいたら大変な事になるよ。 CPU使用率がわかってて、DISK周りの負荷は調べてない? Linuxならiostatとかで見て見なよ、sarが入ってればそれでもいいし。
795 名前:nobodyさん mailto:sage [2009/11/05(木) 16:59:36 ID:???] >>792 ギガビットは過信しないほうがいい LANカードやHUBがしょぼかったら無意味 転送量が少なくても一度に大量の接続があれば捌ききれなくなる。
796 名前:nobodyさん mailto:sage [2009/11/05(木) 19:35:22 ID:???] >>792 世の中にはキャッシュと言うものがあってだな・・・ てか、HDDからの読み込みが気になるくらいでかいファイルなのか?そのスクリプト。
797 名前:nobodyさん [2009/11/05(木) 20:31:20 ID:17l6YWCO] >>793-795 OSはWindowsなんだけど、とりあえずHDDをSSDとか1万回転のHDDに変えたら速くなりそうな気がするんだよね。 ルータやLANケーブルはそれなりのやつを使ってるけど。 実際商用のサーバーってどうやって負荷計ってるの?そういうフリーソフトないかな? 何を改善すればいいか分からん。 >>796 スクリプトはでかくないよ。ただ動画のダウンロードが多い。これが遅延の原因かも。 あとデータベースとOSのドライブは別のドライブにした方が速い?パーティションじゃなくて完全に個別という意味で。
798 名前:nobodyさん mailto:sage [2009/11/05(木) 23:07:04 ID:???] >>797 流石にスレ違いだろ。 DISKは複数あったほうが速いにきまっとる 書いてるようにOSとDB分けたほうがいい。
799 名前:nobodyさん mailto:sage [2009/11/05(木) 23:39:13 ID:???] >790 PHPのファイルは、OSによってディスクから内容がメモリに読まれた上で、インタプリタによって機械語にコンパイルされ、実行される。 ここまでが基礎知識。 で、まず、今どきのOSはディスクからの読み込みをキャッシュする。 つまり、一度読んだファイルはメモリにそのまま持っておいて、更新がなければ次回以降はそいつを使う。 次に、APCやeアクセラレータといったPHP関連ライブラリを使うと、機械語にコンパイルされたコードを使いまわしてくれるようになる。
800 名前:nobodyさん mailto:sage [2009/11/05(木) 23:55:44 ID:???] >>797 NICかHubが壊れかけてるとか? とりあえず遅延がどの時点で発生しているのか調べないと。 なんかPHPが原因じゃないっぽい感じがする。
801 名前:nobodyさん [2009/11/06(金) 15:02:27 ID:uY82lX0B] Tomcat+Javaで、Javaのローカルページ開くと、コンソール画面に出力できるよね System.out.printlnで あれ、デバッグですごく便利なんだけど、 EclipseでPHPでできないのかな
802 名前:nobodyさん [2009/11/06(金) 15:30:23 ID:+6dsWJpT] GoogleSafeBrowsingで質問です www.madirish.net/?article=245 上記を参考にPostgreSQLで作ってみました。 BL取得→DBに保存→webから利用があったらmd5してdbにSELECT発行 という形で作ってみたのですが、BL取得→DBに保存 ここまで上手くいって294,830件のハッシュがDB内に存在する所までは確認できました ところが実際にwebから本家GoogleSBでBL入りしているようなドメインを送ってもBL判定されません。 どなたかMySQL環境がある方、このソースをまんまで試してみて頂けますでしょうか…。 例として下記 www.google.com/safebrowsing/diagnostic?site=4gameranking.com
803 名前:nobodyさん [2009/11/06(金) 21:29:10 ID:qkr//tmU] 変数に値が入っているか入ってないか調べる時 if(isset($val))かif(!empty($val)) と if($val != "") か if($val <> "") では、どちらの方が処理が速いのでしょうか?
804 名前:nobodyさん mailto:sage [2009/11/06(金) 22:11:01 ID:???] >>803 とりあえず、「empty isset」のキーワードでぐぐってみた方がいいな
805 名前:nobodyさん mailto:sage [2009/11/06(金) 23:17:02 ID:???] >803 Cのコードを読んでみないとなんとも言えないが、もっとも処理の少ないであろうisset()が最速だと思う。 だけど、そんな速度差を気にしないといけないような案件でPHPを使うほうが間違っているので、どうでもいい。
806 名前:nobodyさん [2009/11/06(金) 23:29:19 ID:vBz8RCVv] フレームワークを覚えるのに挫折しました そこでクラスについて勉強したいと思うのですが フレームワークを覚える前にクラスの使い方を覚えると楽になりますか? OOP、デザインパターンを覚えてからフレームワークに入るのが王道でしょうか? プログラミングはPHPが初めてでクラスの基本的なものは分かるのですがクラスだけは敷居が高くて勉強してきませんでした
807 名前:nobodyさん mailto:sage [2009/11/06(金) 23:33:04 ID:???] フレームワークの製作者になるのが目標でなければ フレームワークの使い方だけ学べばいいんじゃないかな。 どこにファイルを置いて、こういう名前にして、どういうAPIがあって・・・みたいな。
808 名前:nobodyさん mailto:sage [2009/11/06(金) 23:34:14 ID:???] クラスなんて書けなくても使えるなら別に困りません。
809 名前:nobodyさん [2009/11/06(金) 23:34:43 ID:vBz8RCVv] class hello_world { private $word = "こんにちは世界さん(^^)"; function view() { return htmlspecialchars($this->word, ENT_QUOTES); } } $obj = new hello_world(); echo $obj->view();
810 名前:nobodyさん [2009/11/06(金) 23:38:43 ID:vBz8RCVv] 借り物のPCなのでデータベースを入れられないのと使い方がわからないのでちいたんは挫折しました cakePHPもなんかドキュメントの通りやりましたがこのファイルにこれを書けという意味が理解できなかったため挫折しました smartyはサンプルみて挫折しました
811 名前:nobodyさん mailto:sage [2009/11/06(金) 23:41:26 ID:???] phpでstaticとかprivateってつかえる?
812 名前:nobodyさん mailto:sage [2009/11/06(金) 23:44:53 ID:???] >>811 >>809 見ろよ
813 名前:nobodyさん mailto:sage [2009/11/06(金) 23:53:40 ID:???] ちいたんは挫折しました
814 名前:nobodyさん [2009/11/06(金) 23:54:01 ID:vBz8RCVv] public protected private が使えます
815 名前:nobodyさん mailto:sage [2009/11/06(金) 23:54:54 ID:???] ちいたんで挫折してたらこの世に使えるFWなくね?w あとSmartyはFWでないしな
816 名前:nobodyさん mailto:sage [2009/11/06(金) 23:59:14 ID:???] symfonyはインストールできましたがドキュメント見ても分からないため挫折しました ZendFrameworkはドキュメントがたくさんあってまだ読んでないです フレームワークって新しい言語を覚えるような感じですね 気合入れないとだめですね
817 名前:816 [2009/11/06(金) 23:59:56 ID:vBz8RCVv] id出し忘れました
818 名前:nobodyさん mailto:sage [2009/11/07(土) 01:02:50 ID:???] 順を追ってステップアップしていくのが一番だよ がんばれ!
819 名前:nobodyさん mailto:sage [2009/11/07(土) 01:04:33 ID:???] ちいたんはコメントないから初心者向きではないよ
820 名前:nobodyさん [2009/11/07(土) 10:59:11 ID:HHoKTIgI] //検索対象 $array = array("inquiry","support"); //検索する文字 $val = "inquiry_form"; // 検索文字が対象に一致するか foreach($array as $item){ if(strstr($val,$item)){ //一致した場合の処理 } } 検索する文字が検索対象に一致するか調べたいと思います。 上のように対象をforeachで回して$valに対象の文字列と一致するか 調べる方法が一番簡単だと思いますが、 検索する文字が複数ある場合、何回も上記の事をしなければいけません。 もう少し効率の良い書き方はないでしょうか?
821 名前:nobodyさん mailto:sage [2009/11/07(土) 11:26:41 ID:???] >>820 array_map使うと楽です
822 名前:nobodyさん [2009/11/07(土) 11:32:59 ID:HHoKTIgI] ありがとうございます。ぜひ参考にします。
823 名前:nobodyさん mailto:sage [2009/11/07(土) 12:00:25 ID:???] function a($a) { $txt = "aaazzzccc"; if (strstr($txt,$a)) echo "一致\n"; } $search = array("aaa","bbb","ccc"); $p = array_map("a",$search);
824 名前:nobodyさん mailto:sage [2009/11/07(土) 12:23:34 ID:???] > 検索する文字が複数ある場合、何回も上記の事をしなければいけません。 別にarray_mapなんか使わなくても単にforeachの二重ループにすればいいのでは?
825 名前:nobodyさん mailto:sage [2009/11/07(土) 12:35:53 ID:???] 質問者は既にforeach使ってるみたいだね
826 名前:nobodyさん mailto:sage [2009/11/07(土) 14:40:11 ID:???] 2重ループwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
827 名前:nobodyさん mailto:sage [2009/11/07(土) 14:42:27 ID:???] 単にin_arrayでいいのでは?
828 名前:nobodyさん mailto:sage [2009/11/07(土) 15:07:14 ID:???] in_array= 配列に値があるかチェックする 質問では配列に格納された文字列が、変数に格納された含まれているかチェックする おk?
829 名前:nobodyさん [2009/11/07(土) 15:09:30 ID:PiVKZwA7] HTML_QuickFormとSmartyの組み合わせだと、1ページに1つのフォームしか作れないんでしょうか? 検索しても複数ページの遷移の件などがヒットして、複数のQuickFormをSmartyに渡す方法が出て来ません
830 名前:nobodyさん mailto:sage [2009/11/07(土) 15:29:08 ID:???] >>828 日本語でおk
831 名前:nobodyさん mailto:sage [2009/11/07(土) 16:00:49 ID:???] >>830 in_arrayはお門違いってことが理解できなかったか 外人さん乙
832 名前:nobodyさん mailto:sage [2009/11/07(土) 16:58:49 ID:???] >>831 えっ・・・? >検索する文字が検索対象に一致するか調べたいと思います。
833 名前:nobodyさん mailto:sage [2009/11/07(土) 17:04:57 ID:???] >>820 の質問理解してる? >>832 さんよおじゃあin_array使ってコード書いてみろよwww
834 名前:nobodyさん mailto:sage [2009/11/07(土) 17:06:46 ID:???] >>832 質問者が少々日本語でおkなんだよ。意訳すると 「検索文字列が検索対象に含まれていたら何らかの処理をする、と言うロジックを 検索対象が複数だった場合にスマートに書きたい」 って事だろうからな
835 名前:nobodyさん mailto:sage [2009/11/07(土) 17:09:04 ID:???] //検索対象 $array = array("inquiry","support"); //検索する文字 $val = "inquiry_form"; // 検索文字が対象に一致するか foreach($array as $item){ if(strstr($val,$item)){ //一致した場合の処理 } } ↑ これをin_arrayを使ってどう書くのか激しく興味あるんだけど
836 名前:nobodyさん mailto:sage [2009/11/07(土) 17:13:26 ID:???] $a=array(1,2,3); foo($a, array(2,8,9)); てやったとき、両方に2が含まれてるからtrueが返って欲しいんだろうな。 if($a!=array_diff($a, array(2,8,9))) ってどうよ?
837 名前:836 mailto:sage [2009/11/07(土) 17:14:31 ID:???] strstrだったか、失礼しました。
838 名前:nobodyさん mailto:sage [2009/11/07(土) 17:19:55 ID:???] in_arrayでコードまだ??
839 名前:nobodyさん mailto:sage [2009/11/07(土) 17:22:59 ID:???] >>827 =>>830 =>>832 逃亡乙
840 名前:nobodyさん [2009/11/07(土) 22:43:03 ID:CwxQOSeK] constってどういう状況で使うものでしょうか? class test { const hiru_aisatu = "こんにちはっ!!"; const yoru_aisatu = "こんばんは・・・"; const hurarerutoki = "さようなら・・2度と会わないで"; } echo test::hiru_aisatu; こんなかんじで書くのと $hiru_aisatu = "こんにちはっ!!"; $yoru_aisatu = "こんばんは・・・"; $hurarerutoki = "さようなら・・2度と会わないで"; echo $hiru_aisatu; というふうに書くのはクラス使うほうがスピードは遅い?ような気がするのですが 複数人でコード書く場合はクラスでconst使ったほうがいいでしょうか?
841 名前:nobodyさん mailto:sage [2009/11/07(土) 23:45:33 ID:???] in_arrayで解決おじさんまだ????????????????
842 名前:nobodyさん mailto:sage [2009/11/07(土) 23:57:06 ID:???] 規制されたままの方が良かったな
843 名前:nobodyさん mailto:sage [2009/11/07(土) 23:57:15 ID:???] >>840 ・定数は上書きされない ・クラス定数は局所化される
844 名前:nobodyさん [2009/11/08(日) 02:32:54 ID:35LWJ8zb] 関数にいくつでも値を渡すことって可能でしょうか? hoge_func($a) でも hoge_func($a,$b,$c,$d,$e,$f) ただし function hoge_func($a=null,$b=null... とは違う方法で
845 名前:nobodyさん mailto:sage [2009/11/08(日) 02:56:24 ID:???] array
846 名前:nobodyさん mailto:sage [2009/11/08(日) 06:59:04 ID:???] >>844 php.net/manual/ja/functions.arguments.php
847 名前:nobodyさん [2009/11/08(日) 08:26:26 ID:H7unfEmK] PHPとMYSQLでお気に入りの本を紹介するアプリ(紹介者は複数)を作ってるんだけど、 これまでに紹介された本の一覧ページで、同じ紹介者の本が連続して出ないようにしたいです。 たとえば登録時に10冊まとめて登録できる場合、主キーのIDを表示時のソートのキーにしたら 同じ人の紹介した本ばかりが一画面に出ることになります。 これを防ぐにはどうしたら良いですか? 登録時にランダム数を入れるカラムを作って、それをキーにして表示するのか、 それともPHPだけで出来るでしょうか?
848 名前:nobodyさん mailto:sage [2009/11/08(日) 08:59:03 ID:???] >>847 全然適当な並びでよければ ORDER BY RAND()
849 名前:nobodyさん [2009/11/08(日) 09:04:36 ID:H7unfEmK] >>848 うおおお、凄い! そんなのがあるんだ? やっぱり聞いて良かったです。ありがとう!
850 名前:nobodyさん [2009/11/08(日) 10:30:15 ID:atd+IQXc] class test { public $v = "test"; public function display() { return $this->$v; } } $obj = new test; echo $obj->display(); testと表示させたいのですが表示できません PHP5.3です どなたかご指導お願い致します
851 名前:nobodyさん mailto:sage [2009/11/08(日) 10:39:14 ID:???] >840 class Greeting{ const AT_MORNING = 'おっはー☆'; const AT_DAYTIME = 'こんにちは'; const AT_NIGHT = 'こんばんわー'; const FIRST_MESSAGE = '初めまして'; } class Love{ const FIRST_MESSAGE = '好きです!'; const END_MESSAGE = 'さようなら…二度と会わないで'; } echo Greeting::AT_MORNING; 例えば定数の場合、そこまでに通ったコードを全部読んで、定義部を探さないといけない。 クラス定数ならば、格納先のクラスさえ分かれば、そこを探すだけで済む。 勿論、「定数はこのファイルに全部書くこと!」という規則で運用しても同じような効果になるが、「立ち入り禁止」というルールだけ設けるのと柵を作るの、どっちが安全かの差だな。 また、Greeting::AT_MORNINGを読むにはGreetingクラスの存在を知らなければ(requireしなければ)ならない。 つまり、この定数を使っている箇所がどこら辺にあるのか特定しやすい。 あとは、全体から見える位置にものを定義すると、変数名被りや定数名被りが発生しやすい。クラス定数なら、クラスさえ違えば同名になっても問題ない。
852 名前:nobodyさん mailto:sage [2009/11/08(日) 10:41:21 ID:???] >>850 エラー出力見ようよ。たぶんこの場合ずばりのエラーが出てる。 return $this->$v; の、vには$要らない。
853 名前:nobodyさん mailto:sage [2009/11/08(日) 10:41:44 ID:???] return $this->$v だと そのクラス内($this)の変数$vが持ってる値の変数になっちゃう return $this->v がただしい
854 名前:nobodyさん mailto:sage [2009/11/08(日) 10:45:24 ID:???] ありがとうございます か >>852-853
855 名前:nobodyさん [2009/11/08(日) 10:46:05 ID:atd+IQXc] ミス ありがとうございます おかげ様で解決できました >>852-853 どうもありがとうございました
856 名前:nobodyさん [2009/11/08(日) 10:55:19 ID:R5NqdoKR] オブジェクト指向の覚え方についてどなたかご指導お願いします ここ見て勉強してます ttp://php.net/manual/ja/language.oop5.php 目次 * はじめに * クラスの基礎 * Properties * オブジェクト定数 * クラスのオートローディング * コンストラクタとデストラクタ * アクセス権 * Object Inheritance * スコープ定義演算子 (::) * static キーワード * クラスの抽象化 * オブジェクト インターフェイス * オーバーロード * オブジェクトのイタレーション * パターン * マジックメソッド * finalキーワード * オブジェクトのクローン作成 * オブジェクトの比較 * タイプヒンティング * 遅延静的束縛 (Late Static Bindings) * オブジェクトと参照 * Object Serialization この目次を上から順番にやりたいのですがどこまでが基礎の部分でしょうか?
857 名前:nobodyさん mailto:sage [2009/11/08(日) 11:46:29 ID:???] スレを使ってデバッグするとはお主やるな
858 名前:nobodyさん mailto:sage [2009/11/08(日) 11:47:34 ID:???] >>855 へのレスね
859 名前:nobodyさん mailto:sage [2009/11/08(日) 11:58:07 ID:???] 857 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん あぼ〜ん 858 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん あぼ〜ん
860 名前:nobodyさん mailto:sage [2009/11/08(日) 12:02:22 ID:???] >856 staticまで知ってればとりあえず問題ない
861 名前:nobodyさん mailto:sage [2009/11/08(日) 12:12:54 ID:???] >>856 「オブジェクト指向の覚え方」(というか学び方)を知りたいんですね? まずは、 とある言語が「オブジェクト指向的な記述を支援してくれる部分」と、 「オブジェクト指向というもの」自体とを 弁別した方が良いかと。 とある言語で後者を実践するときのものが前者。 そのページで得られるのは、基本的には前者のみ。 OOPそのものへの入門だったら、PHP以外の例えばJavaあたりを使ってOOPの 解説してるとこ覗いた方が良いよ。 それでもその質問に答えるとしたら、上から順番でどこまでってことは無いかな。 >* クラスのオートローディング ↑飛ばしてもいいけど、 >* コンストラクタとデストラクタ ↑飛ばせない てな感じで。
862 名前:nobodyさん mailto:sage [2009/11/08(日) 12:30:58 ID:???] Javaが一通り出来るようになればオブジェクト指向はだいたい理解出来るはず 使いこなすにはまだまだだけど
863 名前:nobodyさん mailto:sage [2009/11/08(日) 12:34:58 ID:???] じゃヴぁじゃヴぁうるせえよks!
864 名前:nobodyさん mailto:sage [2009/11/08(日) 12:41:45 ID:???] >>862 理解できてるから使いこなせるわけで。 順序逆だz
865 名前:nobodyさん mailto:sage [2009/11/08(日) 12:52:04 ID:???] PHPみたいな変数に何でも入って、evalもあるような言語に JavaのOOPを持ち込むのは、混乱の元だろう。 頭固くなるからやめとけ。 初心者はSqueakでもやっとけばいい。
866 名前:nobodyさん [2009/11/08(日) 13:33:48 ID:9EHY5xph] インスタンスってどういうときに使うんですか? class SimpleClass{ public $var = 'a default value'; public function displayVar() { echo $this->var; } } $instance = new SimpleClass(); $className = 'Foo'; $instance = new $className(); ってマニュアルにサンプルが載ってますが 下から1〜3行を $obj= new SimpleClass(); で済ましたほうが楽だと思うのですがどうなんでしょうか どなたかご教示お願いします
867 名前:nobodyさん mailto:sage [2009/11/08(日) 13:36:52 ID:???] 済ますも何もSimpleClassではなく別クラスのFooのインスタンスを作ってるように見えるが
868 名前:nobodyさん [2009/11/08(日) 13:41:42 ID:9EHY5xph] すいませんこれです www.php.net/manual/ja/language.oop5.basic.php 例3 インスタンスを作成する <?php $instance = new SimpleClass(); // 変数を使うこともできます $className = 'Foo'; $instance = new $className(); // Foo() ?>
869 名前:nobodyさん mailto:sage [2009/11/08(日) 13:46:05 ID:???] インスタンスを生成したいクラスを動的に指定する場合に便利だよ autoloadしたい時とかFactoryパターンの時とか
870 名前:nobodyさん mailto:sage [2009/11/08(日) 13:48:04 ID:???] new演算子の右辺に変数が使えるって例だな 可変変数の一種だ
871 名前:nobodyさん mailto:sage [2009/11/08(日) 13:52:41 ID:???] 可変変数の一種などではなく可変関数 www.php.net/manual/ja/functions.variable-functions.php
872 名前:nobodyさん mailto:sage [2009/11/08(日) 14:29:44 ID:???] >>866 >$obj= new SimpleClass(); これだってインスタンスを作成してるわけだが・・・
873 名前:nobodyさん mailto:sage [2009/11/08(日) 17:28:03 ID:???] >>866 クラスってのはクッキー生地の型抜き用の型で、 インスタンスはそれで作られた個別のクッキー(生地)。 抜き型だけあってもそれを使わないと(newしないと)食えるクッキーの存在は生成されない。 てな感じでどうだ?
874 名前:nobodyさん mailto:sage [2009/11/08(日) 17:52:29 ID:???] >>873 スタティックメソッドは?
875 名前:nobodyさん mailto:sage [2009/11/08(日) 17:55:43 ID:???] 最初に入れる具を決めて皮を作るか、とりあえず具は後で買ってくると決めて皮を作るかの違い 出来るものはどちらにしても肉まん・あんまん・中華まん。
876 名前:nobodyさん mailto:sage [2009/11/08(日) 18:00:44 ID:???] >868 変数$classNameの値に応じて、生成するインスタンスを変えられる。 class Foo{ function say_name(){ echo 'foo foo foo!'; } } class Bar{ function say_name(){ echo 'Bar, bar, BAAAAAR'; } } $instance = new $className(); $instance->say_name(); クラスに同じ名前同じ引数のメソッドがあり、その中身のロジックが全然違う場合なんかに使える。
877 名前:nobodyさん [2009/11/08(日) 18:32:26 ID:QzQ1Ze2q] class test{ function test(){ throw new Exception('test'); } } try{ $test = new test; $test->test(); }catch(Exception $e){ echo $e->getMessage(); } classからスローした例外って上みたいにキャッチできますか?
878 名前:nobodyさん mailto:sage [2009/11/08(日) 18:59:39 ID:???] なんで試さんの?
879 名前:nobodyさん [2009/11/08(日) 19:13:09 ID:QzQ1Ze2q] できた、役に立たない奴らだ
880 名前:nobodyさん mailto:sage [2009/11/08(日) 20:10:53 ID:???] 次の方どーぞ。
881 名前:nobodyさん [2009/11/08(日) 21:05:50 ID:8S6RVioX] classを作っておくのは同じコードを2度も書かないためってことでしょうか? 掲示板を作るとき「ファイル操作・文字列処理」をしますのでそういうのをクラスにまとめることによtt いろんなスクリプトで再利用できるという認識でよろしいでしょうか?
882 名前:nobodyさん mailto:sage [2009/11/08(日) 22:33:56 ID:???] 再利用できるように作ってあれば。
883 名前:nobodyさん [2009/11/09(月) 09:32:56 ID:utcN5JBF] >>881 同じコードを2個書かなくていいのはfunction(関数化) クラス化は、同じコードを書かなくていいだけでなく、そのときに必要な部分のみ使える感じ
884 名前:nobodyさん mailto:sage [2009/11/09(月) 10:54:46 ID:???] 関数だと必要な部分のみ使えないの?
885 名前:nobodyさん mailto:sage [2009/11/09(月) 10:57:53 ID:???] オブジェクト指向のオの字も知らないようだと、クラスを作る意味はまるで無い
886 名前:nobodyさん [2009/11/09(月) 11:09:38 ID:utcN5JBF] クラスは何つーか、製作ツール作る感じじゃね? RPGツクールとかそんな感じで 逆にfunctionなどの関数はそのまま関数作ったり RPGツクールの中の、敵にダメージを与える計算部分とか
887 名前:nobodyさん mailto:sage [2009/11/09(月) 11:12:00 ID:???] クラスの目的は… 少なくとも出発点はデータの保護、というかデータに対して可能な操作の定義。>>881 つか、もうそれってPHPの質問と違うやん。 OOもしくはOOP一般じゃろ。
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:???] 無駄に難しく考えないで、自分のレベルで便利に使えるところから使えばいいんだよ。 クラスつかうなんてのは、手段であって、目的ではないからな。