PHPがいかに駄目言語であるかをちゃんと説明
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/11/15(金) 20:57:08.46他の言語と比較しながら、具体的にちゃんと説明してください!
0013デフォルトの名無しさん
2013/11/16(土) 11:02:45.85【PHP】下らねぇ質問はID出して書き込みやがれ 131
http://kohada.2ch.net/test/read.cgi/php/1384065969/
0014デフォルトの名無しさん
2013/11/16(土) 11:07:41.15・引数の順番に統一感がなくリファレンスに頼りがちになる
・戻り値が0とfalseを返すものがあり区別が面倒
これらは最新版でも変わってない
0015デフォルトの名無しさん
2013/11/16(土) 11:09:47.24え
0016デフォルトの名無しさん
2013/11/16(土) 11:10:22.14いざという時にだけ取り出して使うサブ武器としてもふさわしくないようにみえるな
0017デフォルトの名無しさん
2013/11/16(土) 11:23:00.30CUIで使うならRubyかPythonのがふさわしいしな
0018デフォルトの名無しさん
2013/11/16(土) 11:25:57.590===falseはfalse
だから
strposのようにインデックスが0番目にヒットしても0==falseってやるとfalseになってしまう
PHPから緩い比較演算子はなくすべき
0019デフォルトの名無しさん
2013/11/16(土) 11:36:01.22これが仕様だと効いた時くそ笑った
http://www.programming-magic.com/20080307090613/
0020デフォルトの名無しさん
2013/11/16(土) 11:54:39.89そのページの最初のコードを実行すると最新版でも同様になるけど
説明は間違ってるぞ
バグだと未だに思ってる
0021デフォルトの名無しさん
2013/11/16(土) 12:05:35.63ねーよw
0022デフォルトの名無しさん
2013/11/16(土) 14:22:05.96↓
$ref = &$array[1]; //参照渡し
$array[1] = &$array[1]; //参照渡し
としてる感覚なんよね
これ理解させるの大変だから、会社では配列要素のリファレンスをとることを禁止してるよ
0023デフォルトの名無しさん
2013/11/16(土) 14:29:47.300024デフォルトの名無しさん
2013/11/16(土) 15:39:17.61そこ否定する必要がどこに
0025デフォルトの名無しさん
2013/11/16(土) 16:42:24.55わかるわかる。理屈じゃなくて単にキモいわけだよね。
俺も昔はRubyはキモかった。
でもそれは単に自分の問題であることがわかった。
使っていればなれる。理解すればなれる。
それだけの事だった。
理由がない=自分の力不足
そう考えるようになったよ。
0026デフォルトの名無しさん
2013/11/16(土) 16:46:41.080027デフォルトの名無しさん
2013/11/16(土) 16:49:01.17PHP作ったヤツは言語の素人だったから
右辺値や左辺値の知識も無かったのさ
0028デフォルトの名無しさん
2013/11/16(土) 16:54:47.020029デフォルトの名無しさん
2013/11/16(土) 17:09:40.70リファレンスなんて使わないから関係ないと言われた。
今はオブジェクト指向を使えだっけ?
0030デフォルトの名無しさん
2013/11/16(土) 17:17:18.63類は友を呼ぶってな。
0031デフォルトの名無しさん
2013/11/16(土) 17:33:26.43副作用を避けようとする風潮と真逆
0032デフォルトの名無しさん
2013/11/16(土) 17:42:00.37代入しただけでは変わってないよ
0033デフォルトの名無しさん
2013/11/17(日) 00:11:08.25var a = 1
0034デフォルトの名無しさん
2013/11/17(日) 00:12:44.430035デフォルトの名無しさん
2013/11/17(日) 00:50:52.64PHPerは参照が何かすら分かってないのかよ
0036デフォルトの名無しさん
2013/11/17(日) 04:31:21.23そのサイト、俺は図を見てもしばらく理解に苦しんだわ
理解したとき、その図には、その前の状態の図が必要だと思った
その前の状態は、×側と同様に変数に値そのものがくっ付いてる状態なんだな
てっきりその前から全てが参照なんだと思ってたら…
0037デフォルトの名無しさん
2013/11/17(日) 09:09:16.66>>33にいってるのかそれ以前に言ってるのかはっきりしろ
0038デフォルトの名無しさん
2013/11/17(日) 09:30:19.04参照カウンタ増やすだろ。これも一緒だぞ
配列を渡すとき正しい動作をしてないだけ
配列を参照渡しにしとけばバグらなかった話
この例に
$tmp = $array[1];
$tmp = 'Z';
とか足しても、$arrayや$copyには影響ない。
どちらにしろバグを仕様と言い切ってるわ
駄目言語であることには代わりがない
0039デフォルトの名無しさん
2013/11/17(日) 09:39:27.130040デフォルトの名無しさん
2013/11/17(日) 12:34:21.56$value = 1;
$ref1 =& $value;
$ref1 = 2; ← これで$valueが変わるのは普通
$ref2 = $value;
$ref2 = 3; ← これで$valueが変わるのはおかしい
そうだろ?
だけどこれを配列の1要素にした途端、
最後の行で変わってしまうんだよ。
0041デフォルトの名無しさん
2013/11/17(日) 12:36:06.86あなたの説明では余計に分からなくなる
0042デフォルトの名無しさん
2013/11/17(日) 12:37:11.810043デフォルトの名無しさん
2013/11/17(日) 12:55:04.77$array[0] = 1;
$copy = $array;
$copy[0] = 2;
print($array[0]); // 出力 = 1
$arrayは変えずに$copyの値を変えているだけだから当然だな。
$array[0] = 1;
$dummy =& $array; // ←一行増やしただけ
$copy = $array;
$copy[0] = 2;
print($array[0]); // 出力 = 1
増やした一行の$dummyは何も使っていないのだからこれも当然だな。
$array[0] = 1;
$dummy =& $array[0]; // ←配列にしただけ
$copy = $array;
$copy[0] = 2;
print($array[0]); // 出力 = 2
仕様だと強弁した所で、どう見てもこれは明らかにバグだろ?
0044デフォルトの名無しさん
2013/11/17(日) 12:55:57.37PHP厨は馬鹿だと仮定すれば
わからないお前が馬鹿なので
正しい反応だw
0045デフォルトの名無しさん
2013/11/17(日) 13:15:45.28$arr = array(3,4,5);
$ref0 = &$arr[0];
$ref1 = &$arr[1];
$copyA = $arr;
$copy1 = $arr[1];
$copyA[0] = $copyA[0] * 10;
$copy1 = $copy1 * 10;
print_r($arr); // 30, 4, 5
004645
2013/11/17(日) 13:22:38.07$arr = array(3,4,5);
$ref0 = &$arr[0];
$ref1 = &$arr[1];
$copy = $arr;
$copy_1_ = $arr[1];
$copy[0] = $copy[0] * 10;
$copy_1_ = $copy_1_ * 10;
$copy[2] = $copy[2] * 10;
print_r($arr); // 30, 4, 5
0047デフォルトの名無しさん
2013/11/17(日) 13:24:30.08お前ほど説明が下手な人は少ないよな
0048デフォルトの名無しさん
2013/11/17(日) 14:12:31.300049デフォルトの名無しさん
2013/11/17(日) 17:23:06.510050デフォルトの名無しさん
2013/11/17(日) 17:27:01.160051デフォルトの名無しさん
2013/11/17(日) 17:38:23.610052デフォルトの名無しさん
2013/11/17(日) 18:01:53.370053デフォルトの名無しさん
2013/11/17(日) 18:29:37.17このまま消えていってくれたらいいのにねぇ
出来ることなら触りたくないし
0054デフォルトの名無しさん
2013/11/17(日) 18:59:24.56まあ無理だろ?
0055デフォルトの名無しさん
2013/11/17(日) 19:12:33.01ruby2>pypy>php5.3以上>python>>>perl>ruby1.8
0056デフォルトの名無しさん
2013/11/17(日) 19:14:26.490057デフォルトの名無しさん
2013/11/17(日) 19:16:50.76facebookアプリはまあサンプルが
phpっぽい気がするので
理由としてありかもしれんが、
それよりもWordPressは本体がPHPだから、
そのプラグインもPHPで書くのが自然だし、
デザインを変えようと思った時、
そのテンプレートはPHPだ。
0058デフォルトの名無しさん
2013/11/18(月) 00:07:24.33facebookはいろいろなコードを寄贈することで今のphpの速度がある
5.2と5.3の速度の差は、世にhiphopとして出たfacebookのphpのコンパイラによるものが多い
他の言語でもいえることだけど、ディープにその言語を使う新興の大きい企業が必要で
そこから出るリクエストに答えられる言語の開発側が必要ってことだ
0059デフォルトの名無しさん
2013/11/18(月) 00:17:29.680060デフォルトの名無しさん
2013/11/18(月) 00:34:20.32> facebookはいろいろなコードを寄贈することで今のphpの速度がある
facebookはPHPにコードを寄贈してないよ。
0061デフォルトの名無しさん
2013/11/18(月) 01:32:26.63何があったの?
0062デフォルトの名無しさん
2013/11/18(月) 02:12:48.470063デフォルトの名無しさん
2013/11/18(月) 09:23:10.590064デフォルトの名無しさん
2013/11/18(月) 09:29:16.10バックエンドのC++の置き換えって話だっけ
0065デフォルトの名無しさん
2013/11/18(月) 12:40:21.32やっぱFacebookは貢献してるんだ
0066デフォルトの名無しさん
2013/11/18(月) 18:33:54.400067デフォルトの名無しさん
2013/11/19(火) 22:52:39.31よく見てみろ。お前の周りはphpのコードだらけだ。
0068デフォルトの名無しさん
2013/11/19(火) 22:57:25.710069デフォルトの名無しさん
2013/11/19(火) 23:11:17.27phpが広く使われている事と、言語としての良し悪しとは分けて考えた方がよかろ
だからといってもちろん関連性皆無だと言うつもりもない
cgi駆逐するに足る、十分使える言語であり、便利な環境を提供できたからこそ普及したと思います、はい。
0070デフォルトの名無しさん
2013/11/19(火) 23:35:27.90つまり今俺達が生きているのは
良貨を駆逐した結果なんだよ。
0071デフォルトの名無しさん
2013/11/21(木) 13:04:58.88cgiって・・・
0072デフォルトの名無しさん
2013/11/21(木) 13:18:39.58CGIの意味を知らなさそう
0073デフォルトの名無しさん
2013/11/21(木) 13:52:05.50fastCGIが台頭するまでPHPのウリ扱いされてたし
0074デフォルトの名無しさん
2013/11/21(木) 13:56:40.89当時からPHP使ってたが、その売り文句に苦笑してたわ
0075デフォルトの名無しさん
2013/11/21(木) 14:36:30.82mod_perlは1996年からあったけど
fastcgiはいつからだ?
0076デフォルトの名無しさん
2013/11/21(木) 14:42:52.04PerlのFastCGIは1996年だっけな
FastCGI自体はもっと前からあるよ
0077デフォルトの名無しさん
2013/11/21(木) 16:06:11.720078デフォルトの名無しさん
2013/11/21(木) 16:11:19.53クソマジメに作ったものより、テキトーに作ったものの方が愚民には受け入れられやすい
というのが俺解釈
0079デフォルトの名無しさん
2013/11/21(木) 16:27:33.920080デフォルトの名無しさん
2013/11/21(木) 21:48:16.050081デフォルトの名無しさん
2013/11/23(土) 09:40:11.35とか書こうと思って開いたら>>19見てぶっとんだ
参照される側の変数は最初は図の上の$bみたいな形だが参照されると下の形に変わるということ?
0082デフォルトの名無しさん
2013/11/23(土) 09:53:43.11そんな単純な話ではないよ
配列の要素を参照した場合、その配列のコピーが正常に行われないバグないし仕様
三項演算子の優先順序が他と違ってキモイってあったな
0083デフォルトの名無しさん
2013/11/23(土) 10:22:21.78よくわからんけどw
発生条件にはやはり配列も絡むのか
関係ないけどPHPの配列って数値添字も含めて全部連想配列なのもキモい
$a[0]=0;
$a[3]=3;
$a[2]=2;
foreach($a as $b){print "$b\n";}
三項演算子はキモいじゃなくマジ不便
0084デフォルトの名無しさん
2013/11/23(土) 10:39:52.67(Perlなら (stat("filename"))[9] )
作ったオブジェクトをいきなり使うとか
( (new A())->method() )
いったん変数に代入しないとできないのは地味に不便
0085デフォルトの名無しさん
2013/11/23(土) 10:48:33.64後者って前に対応してなかったか?
0086デフォルトの名無しさん
2013/11/23(土) 10:50:15.24両方とも5.4でできるようになってる
0087デフォルトの名無しさん
2013/11/23(土) 10:51:01.610088デフォルトの名無しさん
2013/11/23(土) 10:54:10.950089デフォルトの名無しさん
2013/11/23(土) 11:06:40.825.4以上にすると前に戻れなくなる
その2個以外に
$a = [1, 2, 3, 4];
とか対応してるし
0090デフォルトの名無しさん
2013/11/23(土) 11:17:15.94だが対外サービスで使ってる環境を簡単に変えるとかないわ
0091デフォルトの名無しさん
2013/11/23(土) 11:18:34.51サポートは大丈夫なん?
0092デフォルトの名無しさん
2013/11/23(土) 12:46:33.18気づかないところで互換性がなくなるほうがよっぽど怖い
0093デフォルトの名無しさん
2013/11/23(土) 13:45:35.63うちの5.2はディストリがパッチ当ててくれる環境だったけど、CVEしか対応しないからダメってことになって、客の金で作り直したな
0094デフォルトの名無しさん
2013/11/23(土) 23:04:12.85デプロイが簡単だったし
movabletypeが没落してwordpressが台頭した理由がまさにそれ
マンモス本が出てphp3を日本語対応してサービスインする国内のレンタルサーバー屋が出始めたのが2000年位から
0095デフォルトの名無しさん
2013/11/25(月) 17:50:04.95PHPには追いつけない
0096デフォルトの名無しさん
2013/11/25(月) 21:58:46.320097デフォルトの名無しさん
2013/11/26(火) 15:24:40.46せめて他の言語齧ってもう一度同じ台詞はいてみろよw
0098デフォルトの名無しさん
2013/11/26(火) 15:41:44.01それが長所でもあるけど
ブラウザでしか検証してこなかったコーダなんかがプログラマ気取りになっちゃって
サーバのことなんてこれっぽっちも考えない
0099デフォルトの名無しさん
2013/12/01(日) 02:56:47.350100デフォルトの名無しさん
2013/12/01(日) 06:14:32.320101デフォルトの名無しさん
2013/12/01(日) 21:26:38.600102デフォルトの名無しさん
2013/12/08(日) 10:59:10.720103デフォルトの名無しさん
2013/12/09(月) 13:32:36.51NULL
0104デフォルトの名無しさん
2013/12/15(日) 02:06:12.63ApacheとPHPの環境設定が全然うまくいかなくて
さっきXAMPPってのを知ってようやく使えるようになった。
でもdate関数使ったら時刻はずれるし(php.iniでAsia/ときょ にしたのに!)
2013年が20136と表示されるし
なんなんやこの言語は!
0105デフォルトの名無しさん
2013/12/15(日) 15:06:29.970106デフォルトの名無しさん
2013/12/16(月) 20:16:27.19先発の言語を駆逐できないのは、技術者の問題や、保守もあるから仕方ないんだが…
Web専門外の言語の後発フレームワークと比べられるのは流石にヤバい流れだと思う
0107デフォルトの名無しさん
2013/12/16(月) 21:04:16.100108デフォルトの名無しさん
2013/12/19(木) 23:16:56.89RFCの仕様がそこらじゅうに見えるPHPがWebにおいて
最良の選択肢なんだって思い知らされた
0109デフォルトの名無しさん
2013/12/19(木) 23:43:37.58例えて言うなら水周りが貧弱なまま建て増し繰り返したオンボロ物件
RFCが見えるってのもよくわからん
言語問わずRFCに素直な実装したライブラリが整ってれば良い訳で、何が優れてる訳でもなかろ
0110デフォルトの名無しさん
2013/12/20(金) 00:00:50.41この辺が好き。
0111デフォルトの名無しさん
2013/12/20(金) 00:03:25.270112デフォルトの名無しさん
2013/12/20(金) 00:54:22.62■ このスレッドは過去ログ倉庫に格納されています