1 名前:nobodyさん mailto:sage [2013/05/26(日) 23:01:58.78 ID:???] 質問者はまず>>1 を良く読むこと(必須!) 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 127 kohada.2ch.net/test/read.cgi/php/1363698829/ ◆質問用テンプレ 【OS名】CentOS 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL ImageMagick 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
99 名前:95 mailto:sage [2013/05/31(金) 18:04:47.74 ID:???] え、だからオートローダが有利な場面があるんじゃないの? おかしい?
100 名前:76 [2013/05/31(金) 18:09:16.63 ID:2B6R5nZc] ところで、>>98 のような場合、autoloadを使わないとき、requireはどうやるのがいいのかな。 ケース1:Fooを使う人は内部のことなんかしったこっちゃないからFoo.phpでrequireしろ派 Foo.php: <?php require_once 'Bar.php'; require_once 'Baz.php'; ケース2:呼び出し側でやる派 index.php: <?php require_once 'Foo.php'; require_once 'Bar.php'; 俺の場合は、最初はケース1派だったんだけど、理由は忘れたがケース2派になり、今はautoload派になった。
101 名前:nobodyさん [2013/05/31(金) 18:13:00.31 ID:2B6R5nZc] ケース1しかありえない
102 名前:nobodyさん [2013/05/31(金) 18:13:21.01 ID:2B6R5nZc] 途中で送った。 ケース1しかありえない気がしてきた。
103 名前:nobodyさん mailto:sage [2013/05/31(金) 18:25:19.05 ID:???] 正しい作法としてはケース1でしょ。 とはいえ、ファイル間の結合度や依存度によってケースバイケース。 たとえばフレームワークのルーティンにおいて bootstrap で基本ファイルを呼び出すっていうのはお決まりのパタン。
104 名前:nobodyさん mailto:sage [2013/05/31(金) 18:27:37.83 ID:???] autoloadが解決する問題は、複雑な依存性が存在した場合のrequire/includeであって、速度に関しては 副次的な物だと思う。 確かに、autoloadはnewのエラーをフックしてファイルをロードするので、無駄なロードは発生しない。 しかし、数千req/secもあるようなシビアな場合ではないのであれば、autoloadあるいはrequire/includeが 一度に付きms未満の差しかないのだから、速度に関してはあまり気にする必要は無い。 クラス名やファイル名、ファイルの配置については、PSR-0に従うのが現状ではベストでは無いかと思う。 そうすれば、autoloadにも対応しやすい。
105 名前:nobodyさん mailto:sage [2013/05/31(金) 18:28:37.70 ID:???] あと、include_once や require_once は結構コストかかるから出来たら使わないほうがいいんだって ラードフさんが仰ってたよ
106 名前:nobodyさん mailto:sage [2013/05/31(金) 18:29:30.28 ID:???] includeの方がいいのか
107 名前:nobodyさん mailto:sage [2013/05/31(金) 20:25:05.53 ID:???] >>92 SPRってよくしらないんだけど、これ? https://github.com/alv-c/SPR---Simple-PHP-Router
108 名前:nobodyさん mailto:sage [2013/05/31(金) 20:28:46.16 ID:???] あ、PSRか、ゴメヌ
109 名前:nobodyさん mailto:sage [2013/05/31(金) 20:47:34.66 ID:???] >>92 きれいにPHPファイルを配置してautoload使いましょう、 で終了じゃないか
110 名前:nobodyさん [2013/05/31(金) 21:08:07.40 ID:0pyQKPZl] >>83 >>84 お礼遅れて申し訳ない ありがとうございます
111 名前:nobodyさん mailto:sage [2013/05/31(金) 22:00:54.96 ID:???] 最近phpでCLI処理を書いています 今までrubyやpythonを使ったりしてましたが、 PHPは実に使いやすい いちいち何をincludeして〜とか調べなくてもいいし、オブジェクト指向的にも問題ない web以外にもPHP使うの最高じゃないですか? なんでCLIではいまいち不人気なんでしょうか みんなかっこつけてるんですか?
112 名前:nobodyさん mailto:sage [2013/05/31(金) 22:08:35.93 ID:???] 便利だから使ってるし、みんな使ってるんじゃない?
113 名前:nobodyさん [2013/05/31(金) 22:38:24.89 ID:TNUtMHtE] エラーハンドラで受け取ったファイル名や行数から、その部分のソースコードを取得したいのですが、 それにはファイルを読み直さないといけないですか? ソースコード自体はメモリに載っているはずなので、 ファイルを読まなくても取得する方法があるような気もするのですが…
114 名前:nobodyさん mailto:sage [2013/05/31(金) 23:14:39.26 ID:???] >>111 LinuxではPerlやPythonはデフォルトで使えることがほとんどだが、PHPはそうじゃないからじゃないかな。 あと、複数のバージョンを簡単に切り替える仕組みがない。 それに、CLIなのに/etc/php.iniを見に行くのがいけてない。 スレッドが使えないとか。 サーバアプリが書きにくいとか。 コマンドラインで使うときのライブラリが充実してないとか。 DB読むツール書くのは楽なんだけどね。
115 名前:nobodyさん mailto:sage [2013/05/31(金) 23:57:29.92 ID:???] >>114 -c オプションで好きなphp.ini見に行けるでしょ?
116 名前:nobodyさん mailto:sage [2013/06/01(土) 00:04:17.77 ID:???] >>115 shebangで/usr/bin/env使いたいときとか、cronと相性悪い。
117 名前:nobodyさん mailto:sage [2013/06/01(土) 00:07:19.59 ID:???] #!/usr/bin/env php とかできるんだ。知らんかったわ。
118 名前:nobodyさん mailto:sage [2013/06/01(土) 00:12:44.55 ID:???] つか、もともとコマンドラインツール出身のperl, python, rubyと、それほどCLIに力を入れてないPHPじゃ どっちが使いやすいか明白じゃん。 まあpharがもっと流行れば、もう少しはCLIにも脚光が当たるかもだけど。
119 名前:nobodyさん mailto:sage [2013/06/01(土) 00:14:15.52 ID:???] >>113 PHP自体はCで書かれてるので自由にカスタマイズすれ
120 名前:nobodyさん mailto:sage [2013/06/01(土) 00:18:32.89 ID:???] 発想を変えて、独自エラーハンドラ定義して、エディタのtag jump に対応した形式でエラー出力して、 エディタでtag jumpするのはどうかな。
121 名前:nobodyさん mailto:sage [2013/06/01(土) 00:27:44.17 ID:???] PHPは元々の名前の由来自体が Personal Home Page Tools だからね。 それに最初は Perl で書かれてたんでしょ? PHP自体
122 名前:nobodyさん mailto:sage [2013/06/01(土) 01:39:45.11 ID:???] >>121 >それに最初は Perl で書かれてたんでしょ? PHP自体 初耳だけど。ソースは?
123 名前:nobodyさん mailto:sage [2013/06/01(土) 01:47:06.51 ID:???] ソースも何も、超有名な話だと思うがw ラードフさんが、サイトの作成の際に perl だと余りにも面倒くさかったんで 自分のツールとして perl でライブラリを作ったのが最初だよ
124 名前:nobodyさん mailto:sage [2013/06/01(土) 01:55:52.66 ID:???] >>123 だから、そのことが書いてあるWebページplz
125 名前:nobodyさん mailto:sage [2013/06/01(土) 03:22:53.18 ID:???] >>124 manual.xwd.jp/history.html
126 名前:nobodyさん mailto:sage [2013/06/01(土) 03:28:32.98 ID:???] >>125 php.net/manual/ja/history.php.php
127 名前:nobodyさん mailto:sage [2013/06/01(土) 03:34:45.32 ID:???] >>126 最近のManualのHistoryでは、最初にPerlで記述したことは省かれてるけど(経緯はわからないけど)、少なくとも2006年までは「Perlスクリプトの単純な組み合わせでした」とされてるわけね。 何をムキになってるの?
128 名前:nobodyさん mailto:sage [2013/06/01(土) 03:42:12.25 ID:???] >>127 ムキになっているのは君でしょ
129 名前:nobodyさん mailto:sage [2013/06/01(土) 04:24:03.89 ID:???] あほ? >>122 >>124 >>126 >>128 どうみてもおまえがむきになってるだろ(笑)
130 名前:nobodyさん mailto:sage [2013/06/01(土) 09:25:46.27 ID:???] >>129 つ鏡
131 名前:nobodyさん mailto:sage [2013/06/01(土) 10:59:27.62 ID:???] >>124 昔はいたるところで目にしたような気がしたんだが、たしかに今はあまり見かけないな 今確認できたのは Wikipedia の PHPの項目の歴史のセクションにちょこっと書いてある程度だし、 しかもPHPと名付けられた時点では既に C で書きなおされているとされている。 そもそもが曲解していたのかもしれないし、もはや perl との関係はなかったことにする流れなのかもしれないな。
132 名前:nobodyさん [2013/06/01(土) 15:32:17.20 ID:Lm5yShvx] 抽象クラスのstaticメソッドの中から子の具象クラスのクラス名を知るにはどうすればいいですか?
133 名前:nobodyさん mailto:sage [2013/06/01(土) 15:33:43.56 ID:???] >>121 ださい名前だなぁw パーソナルて
134 名前:nobodyさん mailto:sage [2013/06/01(土) 17:04:54.97 ID:???] >>133 作者個人専用ツールだったんだからパーソナルで間違いない。
135 名前:nobodyさん mailto:sage [2013/06/01(土) 18:36:03.21 ID:???] >>133 だったらCだってダサいだろ? はじめてのC (笑)
136 名前:nobodyさん mailto:sage [2013/06/01(土) 18:38:20.52 ID:???] C language って見た時、Body language を思い浮かべた俺はヘンタイ?
137 名前:nobodyさん mailto:sage [2013/06/01(土) 18:45:11.97 ID:???] >>132 意味が分からん。まさか、 class Parent { static function hoge(){ // ここで Sub についてなにか知りたい } } class Sub extends Parent { } ってことか?
138 名前:nobodyさん mailto:sage [2013/06/01(土) 22:59:01.16 ID:???] >>132 言いたいことがよくわからんが、できないと思うよ。 具体例をコードで示すのが吉。
139 名前:nobodyさん mailto:sage [2013/06/01(土) 23:22:14.26 ID:???] >>132 abstract class AbstractClass { public static function getName() { echo static::thisName(); } } class concrete extends AbstractClass { public static function thisName(){ return __CLASS__; } } $foo = new concrete(); $foo->getName();
140 名前:nobodyさん [2013/06/02(日) 14:29:22.81 ID:ZugnqmP2] POSTで送信されたデータは 基本的にissetで入っているかどうか判定しないと 送信されてない初期の場合にはエラーがでるものなのでしょうか? 勉強に使っているサンプルコードは特にPOSTデータのisset判定はしていません 特定の環境だけエラーができるものなのですか?
141 名前:nobodyさん mailto:sage [2013/06/02(日) 14:32:47.73 ID:???] >>140 エラーが出る出ない以前に、issetで判定するべき
142 名前:nobodyさん [2013/06/02(日) 14:36:07.32 ID:ZugnqmP2] >>141 ありがとうございます 判定するようにします
143 名前:nobodyさん [2013/06/02(日) 15:48:58.82 ID:3Klk3b6H] 長い文章を「。」の後ろの位置で切りたいと思いますが /。/でsplitすると、。が消えてしまいます 「。」を「。|」など、句切り用文字付きに置換してから、 句切り用文字でsplitすると、望みの結果になると思いますが、 これを一度のsplitで行なう方法はありますか?
144 名前:nobodyさん mailto:sage [2013/06/02(日) 15:53:09.15 ID:???] splitはそういう関数だからな pre_match_allとか使えばいいんじゃない
145 名前:nobodyさん mailto:sage [2013/06/02(日) 16:17:08.70 ID:???] >>137 質問ならID出せゴミ
146 名前:nobodyさん mailto:sage [2013/06/02(日) 20:58:44.71 ID:???] >>143 消えてるって分かってるんだから、切ったそれぞれの後ろで。足せよ
147 名前:nobodyさん mailto:sage [2013/06/02(日) 21:00:10.83 ID:???] >>146 頭わりーなw
148 名前:nobodyさん mailto:sage [2013/06/02(日) 21:45:31.73 ID:???] まあ、 preg_split('/(?<=。)/' ,$txt) とかでどうかな。