[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 06/03 06:46 / Filesize : 42 KB / Number-of Response : 149
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はID出して書き込みやがれ 128



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等)・フレームワークは各該当スレへ

88 名前:nobodyさん mailto:sage [2013/05/31(金) 07:28:50.07 ID:???]
ここでID出せID出せっていってるやつは何目的でこのスレにいるんだ?
たいしたスキルもなく教えることもできないがIDだけにはこだわって
言い続けてる。お前は自閉症児かw

>>79

こういうやつなw何が目的なのか答えろよ引きこもりニートが
まっとうな言動をしてるようでお前の方こそ人を不愉快にしてることに
気づかないのか?

ようつべのコメントでもまともなコメをしてるようで相手をただ単に攻めてるだけ
ってのよくあるけどまさにそんな感じだな

お前みたいに自分の言動が人にどう思われるのかわからないで好き勝手にやってる
ゴミは社会の迷惑だから早く北朝鮮の炭鉱へ行って

89 名前:nobodyさん mailto:sage [2013/05/31(金) 08:17:29.55 ID:???]
>>85
foreach();
じゃなくて
foreach():
でしょ

90 名前:nobodyさん [2013/05/31(金) 09:52:51.73 ID:Vx9Hevlv]
>>89
わかりました、ありがとうございます。
foreach():
〜〜
endforeach;
ですね。

91 名前:nobodyさん mailto:sage [2013/05/31(金) 10:55:23.57 ID:???]
>>88
言い回しはともかく、IDを表示するのがルールなんだから答える必要はないと思うよ。
君の言動?も相当人を不愉快にさせてると思うけどね。

92 名前:76 [2013/05/31(金) 11:53:17.47 ID:2B6R5nZc]
話の流れで疑問が出たときもID必要なのね。

>>81
> オートロードでダメな理由って何なの?

一発でパスを確定できるファイル名でPHPファイルを置いているなら問題ないけど、
ロード候補ディレクトリが複数になる場合は、ファイルの存在チェックが必要になる。
そのオーバーヘッド分が馬鹿にならないんじゃないかと思った。

SPRに準拠したnamespaceを定義していて、きれいにPHPファイルを配置してるなら
問題ないけど。

93 名前:76 mailto:sage [2013/05/31(金) 17:18:33.14 ID:???]
時間ができたのでちょっとだけ実験してみた。

一つのクラスをnewするだけのコードを、"ab -c 32 -n 10000"でrequire_onceとautoloadを比較。
PHP 5.4.10。APC有効。開発用Macで実行。

require_once版:
Requests per second: 8452.75 [#/sec] (mean)
Time per request: 3.786 [ms] (mean)
Time per request: 0.118 [ms] (mean, across all concurrent requests)

autoload版:
Requests per second: 6625.91 [#/sec] (mean)
Time per request: 4.830 [ms] (mean)
Time per request: 0.151 [ms] (mean, across all concurrent requests)

autoloadの方が20%程度くらい遅いけど、そこそこぬるい環境だったら問題ないのかな。

94 名前:nobodyさん mailto:sage [2013/05/31(金) 17:31:36.61 ID:???]
自分でできるんなら、最初から自分でやれアホ

95 名前:nobodyさん mailto:sage [2013/05/31(金) 17:43:27.30 ID:???]
必要なファイルの数 = N1
無駄なファイルの数 = N2

ファイルロードのコスト = L
オートローダによる1ファイルあたりのオーバーヘッド = A
(オートローダのファイルロードコスト = L+A)

とした場合のファイルロード全体のコスト C

通常のファイルロードコスト C1
C1 = (N1+N2) * L

オートローダ使用時のコスト C2
C2 = N1 * (L+A)

オートローダ使用時の差分 C2-C1
N1*A - N2*L

96 名前:nobodyさん mailto:sage [2013/05/31(金) 17:44:32.16 ID:???]
現状のフレームワークでプラグイン多用した構成の場合は
ファイルの存在チェックのほうがはるかにコストが低い場合が多いと思うけどな。
素で書き起こした機能限定のシステムじゃなければオートローダ使わない手はないと思うけど。



97 名前:76 mailto:sage [2013/05/31(金) 17:56:07.06 ID:???]
>>95
うーん、そもそもその「無駄なファイルの数」というのが何なのかわからないんだ。どういうこと?
ひょっとして、ロードする必要が無いファイルもrequireしてるってこと?

98 名前:76 mailto:sage [2013/05/31(金) 18:04:22.71 ID:???]
あ、こういうことか。
Foo.php:
<?php
class Foo {
public function hoge() { $o = new Bar(); }
public function fuga() { $o = new Baz(); }

Bar.php:
<?php
class Bar {}

Baz.php:
<?php
class Baz {}

index.php:
<?php
require_once 'Foo.php';
require_once 'Bar.php';
require_once 'Baz.php';

$o = new Foo();
$o->hoge();

としたとき、Baz.phpのロードがいらないってことか。

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)  とかでどうかな。 






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<42KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef