トップページ⇒php
1001コメント279KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/02/26(日) 11:49:58.54ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 115
http://kohada.2ch.net/test/read.cgi/php/1327005803/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0545nobodyさん2012/03/12(月) 16:49:26.43ID:???
今yum死んでる?アップデートもインストールもできない
05465452012/03/12(月) 16:51:27.16ID:???

すみません。誤解な上にスレチでした。
0547nobodyさん2012/03/12(月) 17:40:16.66ID:???
はやてのようにあらわれて
0548nobodyさん2012/03/12(月) 18:01:36.44ID:JEbP5xt5
>>543-544ありがとうございました。
0549nobodyさん2012/03/12(月) 18:39:29.58ID:???
いいってことよ
0550nobodyさん2012/03/12(月) 20:15:15.33ID:???
剰余の計算で===とかw
0551nobodyさん2012/03/12(月) 20:32:13.57ID:???
いくつかの突っ込みどころの中でそれを選んだ>>550はすごいな
0552nobodyさん2012/03/12(月) 20:34:11.33ID:???
比較演算子は、そっちで書ける限りそっちのほうが早いし間違いも無い。

笑うのはありえない。
0553nobodyさん2012/03/12(月) 20:37:48.54ID:???
>>552
書ける限り早いってどういうこと?
0554nobodyさん2012/03/12(月) 20:46:32.39ID:???
===ではなくて ==と書きたいこともあるだろう?
そうでなくて、厳密な比較でいい場合はってこと。
0555nobodyさん2012/03/12(月) 21:02:03.44ID:???
==で書いてるコードって今時あんの?
0556nobodyさん2012/03/12(月) 21:08:10.22ID:???
PHP以外というかコンパイラ言語なら==が普通だろ
PHPerルール押し付け(・A・)イクナイ!!
0557nobodyさん2012/03/12(月) 21:09:35.85ID:???
誰も他の言語の話してないしよ
PHPの==と===の違いを理解してから言ってくれ
0558nobodyさん2012/03/12(月) 21:09:37.11ID:???
>>554
いやだから何が早いのかさっぱり分からんが。
判断速度が?記述速度が?処理速度が?
0559nobodyさん2012/03/12(月) 21:14:00.61ID:???
理解してなきゃコンパイラ言語と言わんわ
0560nobodyさん2012/03/12(月) 21:15:40.79ID:???
for ($i=0;$i<count($array);$i++)
とかもそうだな
外に出せとかいうやついるよな
CやJava使いが簡単に使えるような仕様にしてんだから
そいつらにすれば余計なお世話だ
0561nobodyさん2012/03/12(月) 21:26:47.21ID:???
>>558
あいまいな比較は、厳密な比較より遅いってだけの話だよ
0562nobodyさん2012/03/12(月) 21:35:52.24ID:???
>>561
曖昧な方が遅いの?
0563nobodyさん2012/03/12(月) 21:39:49.55ID:???
遅いっていっても100万回ループしてやっと差がつく程度のレベルだろ
0564nobodyさん2012/03/12(月) 23:05:06.52ID:???
100万年ROMってやっと違いに気付くレベルの差か
0565nobodyさん2012/03/12(月) 23:21:31.89ID:???
>>560
CやJavaと同じ仕様で考えるなら===を使うけど
0566nobodyさん2012/03/12(月) 23:26:32.46ID:???
速度云々の問題では
0567nobodyさん2012/03/12(月) 23:33:17.93ID:???
=== の方が速いし、何より型違いによるバグに気付きやすいなるでしょ
0568nobodyさん2012/03/12(月) 23:39:56.43ID:???
勉強になったわ
0569nobodyさん2012/03/12(月) 23:40:39.28ID:???
使うなリストに入れとけ
==は使うな
0570nobodyさん2012/03/13(火) 00:00:54.82ID:???
別に遅くてもええわ
俺の糞だし
0571nobodyさん2012/03/13(火) 00:53:05.78ID:qKbE02zH
パーミッション設定について、ローカルサーバを立てて自分の
パソコンでphpやcgiを動かしてるだけなら特に意識しませんでしたが、
レンタルサーバーはパーミッション設定により動かなかったりします。
phpは644で動いてますが、cgiは644では動かず700にする必要が
ありました。phpとcgiの正しいパーミッション設定を教えて下さい。
0572nobodyさん2012/03/13(火) 01:08:14.04ID:???
PHPer、ダメポ。
0573nobodyさん2012/03/13(火) 01:28:49.79ID:???
>>561
1回で何秒くらい?
0574nobodyさん2012/03/13(火) 02:05:59.80ID:???
>>573
10万回くらいまわすテストしてみれば分かるかと。
1秒も変わらないと思うけど。

>>571
PHP関係ないよね
0575nobodyさん2012/03/13(火) 03:59:35.58ID:???
===の話で終わりか。
0576nobodyさん2012/03/13(火) 04:17:31.31ID:???
>>571
webサーバの設定次第だから
レンタルサーバの業者に聞けw
っていうか、普通はどっかに書いてある。
0577nobodyさん2012/03/13(火) 04:49:38.67ID:???
>>571
CGIなら実行権限がいる。
mod_phpなら実行権限はいらない。
0578nobodyさん2012/03/13(火) 07:11:14.46ID:???
>>565
うそつき

>>573-574
100万回まわして0.01秒
05795782012/03/13(火) 07:12:42.52ID:???
あ、嘘つき呼ばわりしてごめん
CやJavaで===使うっていってるのかとおもた

曖昧な比較ができるのがPHPのいいところ
ただし使う人はちゃんと仕様を理解しないとだめだね
0580nobodyさん2012/03/13(火) 07:21:37.09ID:l22JItfE
他言語で
変数A.関数(変数B)
っていう書式で関数使うノあると思いますが
同じのをPHPで書く場合は
関数(変数A, 変数B)
になるんですよね?
05815782012/03/13(火) 07:31:55.39ID:???
性能悪いPCでまわしたら0.05秒差がついた
パフォーマンス云々いうほどのものではないのにはかわりないが・・・

$start = microtime(true);
$a = 1;
for ($i = 0; $i < 1000000; $i++) {
if ($a === $i) {}
}
echo microtime(true) - $start;
0582nobodyさん2012/03/13(火) 08:01:05.73ID:???
>>580
オブジェクトでしょ?
>>581
1回あたり0.00000005秒の違いか
552の限界までパフォーマンスを追及する姿はかっこいいね!
0583nobodyさん2012/03/13(火) 08:22:23.41ID:???
型の違う$a = '1'での比較はどうだったのかと一応突っ込んでおくか
0584nobodyさん2012/03/13(火) 08:33:01.85ID:???
>>583
やるね
0585nobodyさん2012/03/13(火) 08:38:32.12ID:???
2倍と言ったら聞こえはいい
0586nobodyさん2012/03/13(火) 09:38:54.23ID:???
パフォーマンス云々の問題にすり替えるなよ
0587nobodyさん2012/03/13(火) 09:58:01.86ID:???
>>571
ほれみろWindows+XAMPPしか使ってこなかったろ
今すぐ仮想マシンを用意してubuntuでもdebianでも何でもいいからいれろ
0588nobodyさん2012/03/13(火) 09:58:58.13ID:???
>>578
速度のために===を使う奴はいねえよ
0589nobodyさん2012/03/13(火) 10:18:22.84ID:???
そもそも === が必要になることがこの言語のいびつさを物語っている
0590nobodyさん2012/03/13(火) 10:22:22.43ID:???
== 初心者向け
=== ベテラン向け
0591nobodyさん2012/03/13(火) 10:27:23.20ID:???
== ベテラン向け
=== 初心者向け
0592nobodyさん2012/03/13(火) 10:36:53.94ID:???
>>588
話の流れを見ろよ
0593nobodyさん2012/03/13(火) 10:38:07.99ID:???
必要な場面で必要なもの使えばいいだけやん
議論することでもなんでもないが

ちなみに===演算子はJavaScriptにもある
0594nobodyさん2012/03/13(火) 10:43:18.63ID:???
最初から===を使っておけば型の比較によるバグは起こらない
==を使うのは初心者だけにしておけ
0595nobodyさん2012/03/13(火) 10:57:32.85ID:???
>ちなみに===演算子はJavaScriptにもある
インタプリタにはほとんどある
もしくはそれに類する関数とか(JavaやC#でいうString.equalsのようなもの)
0596nobodyさん2012/03/13(火) 11:15:38.43ID:???
一歩上を目指したい人の為の使うなシリーズ

・外部サイトにアクセスするときfile_get_contentsは使うな
・比較に==は使うな
・エイリアスは使うな
・非推奨関数は使うな
・XAMPPは使うな
0597nobodyさん2012/03/13(火) 11:32:25.71ID:???
記述速度もそうだし、便利だから使えばいいじゃん。
問題はパフォーマンスにもそんな差が出ないとわかったところで
使う上ではちゃんと仕様を把握すればいいじゃんって話じゃん。
PHPerがくそだくそだって言われる最たるところは、ちゃんと仕様や内容を
把握した上でスクリプトくまねーところだろ。

>>581
明示的に一度==のときにstringで放り込んでから比較するとどーなる?
0598nobodyさん2012/03/13(火) 11:44:39.05ID:???
>>596
基礎からやりなおしてね
0599nobodyさん2012/03/13(火) 11:52:56.52ID:???
>>598による初心者講座

・file_get_contents推進します。効率なんて気にしてはいけません。UAもクッキーも送信できるのでおすすめ。
・比較に==をジャンジャン使いましょう。型の比較、特に""とnullの比較なんて気にしてはいけません
・エイリアスの使用を広めてあげましょう。自分が好きな関数名で書くのがいいですよ!
・非推奨関数なんて気にせず使いましょう。皆が使えば怖くない!
・XAMPPを積極的に導入しましょう!開発環境に時間を費やしてはいけません。本番と同じものを用意するのはドMがやる作業です。
0600nobodyさん2012/03/13(火) 12:05:16.21ID:???
必死
0601nobodyさん2012/03/13(火) 12:07:08.63ID:???
さりげなくfile_get_contents追加すんな
0602nobodyさん2012/03/13(火) 12:44:20.12ID:???
なんでfile_get_contentsいかんの?
0603nobodyさん2012/03/13(火) 12:58:23.04ID:???
curlのほうがパフォーマンス良&高機能
0604nobodyさん2012/03/13(火) 12:59:03.22ID:???
file_get_contntsは機能が弱いのにcurlより遅い
0605nobodyさん2012/03/13(火) 13:09:30.91ID:???
strpos($s, $c) == false
こう書いちゃう人いそうだな!
0606nobodyさん2012/03/13(火) 13:11:07.15ID:???
�d、そうか。パスワードとかクッキー使って相手にログインして、って
時にはcurl使ってるけど、ただ単に公開のhtmlとか取ってくる時は
file_get_contents使ってるわ。
0607nobodyさん2012/03/13(火) 13:35:22.69ID:???
ローカルのファイル丸ごと飲む以外にfile_get_contents使う人なんているんですか。
0608nobodyさん2012/03/13(火) 13:38:34.99ID:???
phpでパフォーマンスうんぬんはナンセンス。
パフォーマンスなら別言語をどうぞ。
0609nobodyさん2012/03/13(火) 13:54:00.73ID:???
http://net-beta.net/ubench/
みたいなのは、ほとんどただの自己満足に近い差しかないけどさ、
URLからの読込みのような部分は、大きな意味があるよ。遅いんだからさ。
0610nobodyさん2012/03/13(火) 14:12:03.48ID:lpLFUoKU
windows7を使って以下のようにcmdからphpを起動しています
cmd.exe /k C:\php\php.exe "C:\phpファイル.php"
この状態で、コマンドプロンプトからテキスト入力を受け取るにはどうしたらよいのでしょうか。

"C:\phpファイル.php"のコードを実行させつつ、キーボードから入力された値をscanf的な関数で取得させたいので
php -aで使える対話シェルはちょっと違います。
0611nobodyさん2012/03/13(火) 14:21:46.66ID:???
>>610
標準入力 PHPでググよろしね。
Linuxがどうとか出てくるかもせんけど、Winでも同じあるね。
0612nobodyさん2012/03/13(火) 14:30:50.20ID:???
fgets(STDIN);
0613498=523=5252012/03/13(火) 15:24:54.81ID:mq2kKsmo
>>550
>剰余の計算で===とかw
どのへんが面白いんですか。

>>551
>いくつかの突っ込みどころの中でそれを選んだ>>550はすごいな
ほかにどんな突っ込みどころがあります?

>>554
>===ではなくて ==と書きたいこともあるだろう?
ないですねぇ。

「==」って書いたら、後で見直した時に
何か理由があるのか単なる書き間違いなのか、考えなくてはいけないので面倒です。

同じ理由で、変数等の展開が不要な文字列のクォーテーションは必ずシングルで、
必要な場合だけダブルを使っています。

読みにくいので、文字列の中に変数を入れること自体あまりせずに sprintf を
使うことが多いですけどね。
0614498=523=5252012/03/13(火) 15:28:36.89ID:mq2kKsmo
>>608
>phpでパフォーマンスうんぬんはナンセンス。

ですよね。
十分速いし、遅い原因は大抵、DBや外部要因やPHPとは関係のないプログラミング技術の問題ですから。
まぁ、大きなフレームワークはキャッシュを使わないと結構遅いですが。。
0615nobodyさん2012/03/13(火) 15:28:37.33ID:???
>>613
そうですか。
0616498=523=5252012/03/13(火) 15:35:11.51ID:mq2kKsmo
>>590 >>591
== 「===」の存在(またはデメリット)を知らない人向け、または「=」1文字を入力する時間を惜しむ超絶緊急事態
=== 上記以外の人向け
0617nobodyさん2012/03/13(火) 15:35:46.84ID:???
サンデープログラマとか自営とかなら>>613みたいな考えでいいんじゃね?
0618nobodyさん2012/03/13(火) 15:36:43.78ID:AVn4z6l2
データベースから画象を生成しているのですが、
生成できなかったときの事を考慮して

if(画象が存在していたら){
echo 画象;
}

という処理が妥当ですか?

他に何か良い方法はないでしょうか。
0619nobodyさん2012/03/13(火) 15:38:10.38ID:???
デフォルトで遅いからパフォーマンスは気にしなくていいよ。
0620nobodyさん2012/03/13(火) 15:38:36.72ID:???
>>617
え?
0621nobodyさん2012/03/13(火) 15:39:21.37ID:???
うちのデータベースでは画像生成できないからなぁ
0622nobodyさん2012/03/13(火) 15:41:15.50ID:???
>>618
こんな誤字初めて見た
0623nobodyさん2012/03/13(火) 15:42:18.26ID:???
生成できなかったらダミーの別の画像出すだろ
0624nobodyさん2012/03/13(火) 15:43:20.56ID:???
try{
// 画像生成
}catch (e Exception){
exec('shutdown -h now');
exit;
}
0625nobodyさん2012/03/13(火) 15:43:29.07ID:???
遅いので、ちょっとの工夫で数倍早くなることもあります。

>>618
無いとき、どうしたいのですか?
あと、象さんは違うと思います。
0626nobodyさん2012/03/13(火) 15:49:44.78ID:???
>>620
えっ?

可読性を高める為に
コーディングルールとかあるだろ?
0627nobodyさん2012/03/13(火) 15:51:10.74ID:???
>>616
つまり498===523===525ということか
0628nobodyさん2012/03/13(火) 15:51:33.84ID:???
なんかCスレのQZみたいな人がいるなぁ
0629nobodyさん2012/03/13(火) 15:55:20.92ID:???
他の板の住人の事を堂々と言える人って…
0630nobodyさん2012/03/13(火) 15:58:20.53ID:???
>>626
可読性のために、提供されている演算子を捨てろと
0631(498===523===525)===(498=523=525)2012/03/13(火) 16:01:34.11ID:mq2kKsmo
>>627
素敵。
0632nobodyさん2012/03/13(火) 16:04:19.92ID:AVn4z6l2
>>625
無いときは非表示で。
象さんは、今初めて気が付きました。

今、開発中のソース見直してみたら
"画象をアップロードしてください"とか
"画象が挿入されていません!"とか
いたるところがパオーン

0633(498===523===525)===(498=523=525)2012/03/13(火) 16:07:55.10ID:mq2kKsmo
>>617 >>626
んー、コーディングルールがあるなら、「==」なんて使えないでしょうし、
クォーテーションの使い方まで定めてコーディングルールにすることあるかな。
0634nobodyさん2012/03/13(火) 16:07:56.08ID:???
>>626
可読性を高めるなら==なんて使わない
0635nobodyさん2012/03/13(火) 16:08:58.93ID:???
>>627
なげえw
0636nobodyさん2012/03/13(火) 16:11:15.23ID:???
>>632
非表示って、呼びだしてる側は<IMG SRC="〜 使ってんじゃないの?
画像だけ表示してるならまあ間に合うか。
0637(498===523===525)===(498=523=525)2012/03/13(火) 16:12:59.15ID:mq2kKsmo
>>634
同意。
===は==よりも、パッと見で=と区別しやすいところ。意外と重要。
0638nobodyさん2012/03/13(火) 16:22:08.30ID:???
>>630
は?だれが演算子を捨てろと書いた?

>>613の 「==」って書いたら、後で見直した時に 以降
自分が面倒とか自分が読みにくいとかのくっだらない理由を言える
サンデープログラマなら良いんじゃねーの?
0639(498===523===525)===(498=523=525)2012/03/13(火) 16:35:49.76ID:mq2kKsmo
>>638
「自分が面倒」ってことは、開発チームにとってコストだということですよ。

それ以前に、今どきPHPの「緩やかな比較」を使うエンジニアなんていませんが。
そんなんやってるやついたら、ビンタです。
0640nobodyさん2012/03/13(火) 16:41:24.85ID:???
こんな話題で盛り上がれるって素敵やん
0641nobodyさん2012/03/13(火) 16:45:59.65ID:???
>>638
えっと、サンデープログラマ()なら==でいいと思います
複数人で作業するなら===でやらないと型のチェックの緩さによるバグを生みます
0642nobodyさん2012/03/13(火) 16:51:31.53ID:???
>>639
自分が面倒w
自分中心ですか?
0643nobodyさん2012/03/13(火) 16:51:44.58ID:???
>>596
ショートタグは使うな
が抜けてる
0644nobodyさん2012/03/13(火) 17:00:03.04ID:???
型のチェックを気にするくらいならphp使うな。
緩やかなのはそもそも言語仕様だろ。
■ このスレッドは過去ログ倉庫に格納されています