トップページ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等)・フレームワークは各該当スレへ
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使うな。
緩やかなのはそもそも言語仕様だろ。
0645nobodyさん2012/03/13(火) 17:03:59.38ID:???
まあそこで意地になって==で使っててくれよ
本業じゃないなら別にそれでいいから
会社に入ってそんな緩いコード書いてたら肩身の狭い思いをすることになるし
0646nobodyさん2012/03/13(火) 17:04:35.84ID:???
ところで
誰が==に拘っているの?
0647nobodyさん2012/03/13(火) 17:11:14.52ID:???
お前はROMるか過去レス読んでろ
0648nobodyさん2012/03/13(火) 17:14:00.05ID:???
>>645
なんでPHP?
はじめから型が厳しい言語の方が良いのでは?
0649nobodyさん2012/03/13(火) 17:18:56.91ID:???
PHPだから緩い比較しか使っちゃいけないみたいだな
0650nobodyさん2012/03/13(火) 17:26:24.61ID:???
==
二統一しとけ
0651nobodyさん2012/03/13(火) 17:40:20.42ID:???
ニニ
0652(498===523===525)===(498=523=525)2012/03/13(火) 17:49:43.69ID:mq2kKsmo
Subversionのpost-commit hookでこんなのを設定しとけばいいかも。
exit (preg_match('/[^=]==[^=]/', $source)===0) ? 0 : 1;
0653nobodyさん2012/03/13(火) 18:39:37.39ID:???
===使うのはstrposとか返り値に0やfalseが返ってくる関数使う時
あとは仕様を理解してれば緩やかな比較で問題になるケースはない
if ($a === null || $a === 0')
なんて書きたくないしこの条件の時はStringやbooleanは考慮しなくていいので
単に!$aでよい
0654nobodyさん2012/03/13(火) 18:58:16.50ID:???
>>646
>>649
いや、どーも==でもいいじゃん。ちゃんと仕様理解してれば ってのと
===じゃなきゃダメだろ って別れ方っぽい。
別に==にこだわってるのっていないだろ。
0655nobodyさん2012/03/13(火) 19:12:54.29ID:???
>>653
一人でやるなら自由
複数人で作業するなら統一しないとダメ
誰が読んでも分かるコードにしなければならない
0656nobodyさん2012/03/13(火) 19:18:15.96ID:???
動的型付け言語で型を気にしなきゃいけないってのは本末転倒なのでは
0657nobodyさん2012/03/13(火) 19:34:21.75ID:???
気にするってほどの労力じゃないやろwwwwwwwwww
0658nobodyさん2012/03/13(火) 19:43:48.04ID:???
さっきから複数人、複数人って言ってる奴。
比較の仕様をコーダに覚えさせる気がないなら作業させんな。
バグの元だから。
0659nobodyさん2012/03/13(火) 19:54:03.67ID:???
設計書にかいときゃいいんだよ
0660nobodyさん2012/03/13(火) 20:11:47.17ID:???
このスレのコーディング規約つくろうぜ
0661nobodyさん2012/03/13(火) 20:32:27.22ID:???
グローバル空間に関数や変数置くの禁止な
0662nobodyさん2012/03/13(火) 20:52:30.92ID:???
>>638
可読性によって===と==を使い分けるルールができるんだよね。
必要な場面であっても、いずれかしか使えないって事態が起こるんじゃないの。可読性のために。
0663(498===523===525)===(498=523=525)2012/03/13(火) 21:10:27.58ID:mq2kKsmo
>>653
>if ($a === null || $a === 0')
>なんて書きたくないし

そういう比較が必要な設計が問題かもしれませんね。

>>658
>比較の仕様をコーダに覚えさせる気がないなら

緩い設計や実装のために「比較の仕様をコーダに覚えさせる」みたいなことが
必要になるんだと思います。

変数やメソッドが戻す値はソース(PHP自体や一般のライブラリなら仕様書)を
見ればすぐに分かるのだから、比較の仕様は覚える必要はないはずです。
逆に、ソースを見てもすぐにどんな値を戻すか分からない設計は問題があります。

とかマジレスをしてみる。
0664nobodyさん2012/03/13(火) 21:39:45.42ID:???
このすれを見ていて思ったこと

=== null がスルーされていることw
is_nullを使うべきじゃないかなーってw
0665(498===523===525)===(498=523=525)2012/03/13(火) 21:46:02.31ID:mq2kKsmo
>>664
>is_nullを使うべきじゃないかなーってw

is_nullは緩いので使わないんです。
http://php.net/manual/ja/types.comparisons.php
0666nobodyさん2012/03/13(火) 21:47:03.15ID:???
>>664
どうも==と===の話しか目に入らないみたい。
>>551は俺だけど、コード書いた本人と、俺以外からツッコミはいらないんだもの。
0667nobodyさん2012/03/13(火) 21:49:49.22ID:???
使うべきじゃないしis_nullとかいらないし
0668nobodyさん2012/03/13(火) 21:52:41.25ID:???
>>665
emptyと勘違いしてね
0669nobodyさん2012/03/13(火) 21:53:28.06ID:???
>>665,667
$a === null と is_null($a) の違いを教えてもらえますか
0670nobodyさん2012/03/13(火) 22:42:52.45ID:???
>>665
===よりis_nullが緩い?
0671nobodyさん2012/03/13(火) 23:32:33.43ID:???
レスがぱたっと止まってしまったね
0672nobodyさん2012/03/13(火) 23:50:27.29ID:???
型ゆるゆる言語で何語ってるの?
だったら固い言語に変えればいいのに。
そもそも名前空間貧弱、オブジェクト指向性も中途半端な言語で
複数人開発はやめといた方がいい。向いていない。
0673nobodyさん2012/03/13(火) 23:50:46.31ID:???
そうだねw
is_nullが===より緩いとかいったら恥ずかしくて出てこれないと思うよw
0674nobodyさん2012/03/14(水) 00:02:27.34ID:???
==、===

どっち使おうが遅い。
0675nobodyさん2012/03/14(水) 00:04:55.22ID:???
is_nullとかマジでいらんことは確か
0676nobodyさん2012/03/14(水) 00:06:22.49ID:???
>>675
その理由は?
0677nobodyさん2012/03/14(水) 00:09:57.82ID:???
関数を通す必要がない
0678nobodyさん2012/03/14(水) 00:12:58.18ID:???
>>676
多言語知っている人間にとって意味不明のPHP特有の乱立機能。
0679nobodyさん2012/03/14(水) 00:14:04.45ID:???
>>676
あなたが他の言語使うときはis_null相当機能を探すわけだね。
0680nobodyさん2012/03/14(水) 00:21:47.70ID:???
うーんw
いらない理由を聞いていたけど

実行速度やis_nullに弱い部分とかあるとかそんな理由があるのかと思えば
>>677-679…w
0681nobodyさん2012/03/14(水) 00:23:55.89ID:???
自分の無知さを晒してないでベンチぐらいとれよ
関数より式のほうが早いに決まってんだろ
0682nobodyさん2012/03/14(水) 00:27:25.05ID:???
is_nullごときだと、内部の処理が等価ってこともありえるがな。
0683nobodyさん2012/03/14(水) 00:35:03.14ID:???
どっちにしてもphpは実行速度は遅いからどうでもいいよ。
実行速度にこだわるなら別の言語へどうぞ。
0684nobodyさん2012/03/14(水) 00:37:54.54ID:???
違う言語での話だが
言語で持っている関数と同等の処理をインラインアセンブラで最速になる様に書いて
コンパイルした際バイナリエディタで比較したら一致したって事はあるらしいな

今はテストする環境は無いが仕事場に行ったら試してみるか
0685nobodyさん2012/03/14(水) 00:39:12.88ID:???
PHPが遅いのは間違いないからどうであろうと大差ない。
0686(498===523===525)===(498=523=525)2012/03/14(水) 00:43:24.46ID:SRtAsTeP
間違っていました。
お詫びして訂正いたします。

PHPでは以下の3つの状態がNULLで、
  $a=NULL; // $a
  $a;   // $b
      // $c(未定義)

上記の状態でTRUEを戻し、それ以外でFALSEを戻すという点で、
「$var===NULL」と「is_null($var)」は同じです。
そして挙動が反対という点を除き、「isset($var)」も同じでした。

>>668 >>669 >>670
大変失礼いたしました。

ほとんどisset()も使いませんが、連想配列を動的に使う時だけ、
「notice Undefined variable」が出ないようにisset()を使います。

===を使うのでis_null()を長らく使っていなかったのですが、緩かったからだと
思い込んでおりましたが、単に必要が無かったからでした。てへっ!

でも===nullだとis_null()より2バイトお得なので、===nullの方がいいと思います!
0687nobodyさん2012/03/14(水) 00:47:20.33ID:???
>>686
大差ないからどうでもOK。
0688(498===523===525)===(498=523=525)2012/03/14(水) 00:48:56.98ID:SRtAsTeP
>>686
ちょっと書き間違えてた(二行目 $a → $b)。

>PHPでは以下の3つの状態がNULL
  $a=NULL; // $a
  $b;   // $b
      // $c(未定義)
0689nobodyさん2012/03/14(水) 00:49:05.92ID:???
空白明けるから同じじゃね
0690nobodyさん2012/03/14(水) 00:50:23.89ID:???
パフォーマンスにこだわるなら別言語
0691(498===523===525)===(498=523=525)2012/03/14(水) 00:51:15.44ID:SRtAsTeP
>>689
ボケにマジレスされたら困ります。
0692nobodyさん2012/03/14(水) 00:57:52.94ID:???
可読性のためにis_null使ってる
0693(498===523===525)===(498=523=525)2012/03/14(水) 01:01:44.20ID:SRtAsTeP
>>692
is_null($var) より $var===NULL の方が可読性は高いと思うなぁ。
0694nobodyさん2012/03/14(水) 01:04:17.86ID:???
>>686
変数ににnullをセットissetしたら何が戻ってくるのかな〜?とw
真偽が反対だけど同じと言ってもいいのかな?w
あっ使わなければ問題ないのか?w
0695nobodyさん2012/03/14(水) 01:11:26.32ID:???
このスレ恥ずかしい。
0696nobodyさん2012/03/14(水) 01:18:20.70ID:???
>>680
C言語やJava言語の経験者にis_nullの効能を説明してくれない?
0697(498===523===525)===(498=523=525)2012/03/14(水) 01:18:51.01ID:SRtAsTeP
>>694
>変数ににnullをセットissetしたら何が戻ってくるのかな〜?とw

$x = null;
var_dump(isset($x)); // bool(false)

> 真偽が反対だけど同じと言ってもいいのかな?w

真偽が反対以外、同じですね。
0698(498===523===525)===(498=523=525)2012/03/14(水) 01:27:40.70ID:SRtAsTeP
WEBアプリにおけるPHPの遅さは、
DBやネットワークなどの外部要因、
アーキテクチャーやアルゴリズムなどの最適化余地と比べたら、
無視できるレベル。

よって無罪。
0699nobodyさん2012/03/14(水) 01:29:15.81ID:???
>>698
単なるインクルードで遅さを感じるけど・・・。
0700nobodyさん2012/03/14(水) 01:30:53.89ID:???
>>698
symfony使ったことある?
デフォルト状態でスゴイ遅さですが・・・。
0701nobodyさん2012/03/14(水) 01:31:14.75ID:???
>>698
CakePHP使ったことある?
デフォルト状態でスゴイ遅さですが・・・。
0702nobodyさん2012/03/14(水) 01:33:16.47ID:???
>>694
>>697を見たら違和感はあるね。
なんとなく理解しました。
0703nobodyさん2012/03/14(水) 01:36:02.78ID:???
>>698
localhostでも遅いのですが・・・。
0704nobodyさん2012/03/14(水) 01:45:28.63ID:???
痛々しいな
0705nobodyさん2012/03/14(水) 01:55:29.14ID:???
そりゃコンパイラとおす言語に比べたら遅いのは認めるが
必要十分な速度だと思うけどな。
近くのコンビニまでフェラーリで行くより自転車のが便利みたいなもんで。

と、釣られてみた。
0706nobodyさん2012/03/14(水) 01:57:31.10ID:???
むしろphpだから速度気にして === 使ってるよ
少しでも速いほうがいいからね
0707(498===523===525)===(498=523=525)2012/03/14(水) 01:59:30.28ID:SRtAsTeP
>>699
PHP以外の言語だと速いのですか?

>>700
symfonyは、3サイトくらい作りました。
symfonyは遅いですよ。
symfony規模のフレームワークをPHPなどのインタープリタで作ったら、他の言語でも遅いでしょう。
キャッシュを前提としたフレームワークですから、面倒ですがキャッシュの設定をしてください。
アクセラレータも必須です。

>>701
CakePHPは使ったことがないです。
アクセラレータを使い、メモリーに余裕があっても遅いのでしょうか。。

>>703
PHP以外の言語だと速いのですか?
0708nobodyさん2012/03/14(水) 02:06:06.88ID:???
>>707
phpは遅いです。
facebookの失敗例が良い例です。
0709nobodyさん2012/03/14(水) 02:08:08.82ID:???
>>701
CakePHPに限らず、
DBから取得したデータを簡単にキャッシュできないので遅いです。
0710nobodyさん2012/03/14(水) 02:17:55.05ID:rNta1GYa
PHPExcelをLinux環境に入れてテストしたのですが、
開く時ファイルが破損している旨が表示されます。
原因は何が考えられますか?
0711nobodyさん2012/03/14(水) 02:43:02.71ID:???
>>698
>>545みたいなコード書くクセがついてりゃPHPも本来の速度出せないよ。
無駄に遅く動くコードを書いて、PHPは遅い!って喧伝してもなぁ。
せめてちゃんと書いて、それでもやっぱりこれだけ遅いんだ!と主張してほしい。
結果として遅いというのは明白だけれど、あまりにも稚拙。
0712nobodyさん2012/03/14(水) 02:43:51.09ID:???
安価ミスるとか恥ずかしい。
>>711>>545>>544
0713nobodyさん2012/03/14(水) 02:46:25.79ID:???
>>710
Excelファイルを開くときに出るのだろうか。
Excelファイルの形式っていっぱいあるよ
0714(498===523===525)===(498=523=525)2012/03/14(水) 02:51:00.77ID:SRtAsTeP
>>708
facebookの規模を考えれば激速だと思いますが、どの辺が失敗例なのでしょう?

>>709
DBを使う限り遅いから、PHPが遅いわけではないという意味でしょうか?
0715nobodyさん2012/03/14(水) 02:53:21.88ID:???
>>714
facebook hiphopでぐぐりなさいな。
0716(498===523===525)===(498=523=525)2012/03/14(水) 03:01:55.83ID:SRtAsTeP
>>711
マテ。
初心者向けに >>542 のコードを元にした分かりやすい動くコードを示したものに、その言い方はないだろ。

そして「遅い」なんて言ってなくて、「特に遅くない」と言っているだけ。

それに >>544 のコードは、WEBアプリとして見た場合、さして遅くなる要因はない。
0717nobodyさん2012/03/14(水) 03:04:44.92ID:???
なんなんだよこのスレw
0718(498===523===525)===(498=523=525)2012/03/14(水) 03:05:29.31ID:SRtAsTeP
>>717
一緒に語ろう。
■ このスレッドは過去ログ倉庫に格納されています