トップページtech
981コメント306KB

PHPがいかに駄目言語であるかをちゃんと説明

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/11/15(金) 20:57:08.46
age推奨で

他の言語と比較しながら、具体的にちゃんと説明してください!
0041デフォルトの名無しさん2013/11/17(日) 12:36:06.86
>>40
あなたの説明では余計に分からなくなる
0042デフォルトの名無しさん2013/11/17(日) 12:37:11.81
説明下手だなあ
0043デフォルトの名無しさん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.37
>>41-42
PHP厨は馬鹿だと仮定すれば
わからないお前が馬鹿なので
正しい反応だw
0045デフォルトの名無しさん2013/11/17(日) 13:15:45.28
ひと目でわかるPHP

$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
0046452013/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
>>43
お前ほど説明が下手な人は少ないよな
0048デフォルトの名無しさん2013/11/17(日) 14:12:31.30
array以外は?
0049デフォルトの名無しさん2013/11/17(日) 17:23:06.51
phpはよくプログラマに馬鹿にされるから、プログラミング分からないwebデザイナーの奴らにペチパーと馬鹿にされるのが本当に嫌だ。
0050デフォルトの名無しさん2013/11/17(日) 17:27:01.16
>>38の説明ですべて終わってるのに、お前らなにやってるの?
0051デフォルトの名無しさん2013/11/17(日) 17:38:23.61
>>38さんご苦労さまですw
0052デフォルトの名無しさん2013/11/17(日) 18:01:53.37
言語の仕組み知らないと>>38のいってることがわからないってだけだよ
0053デフォルトの名無しさん2013/11/17(日) 18:29:37.17
実行速度面でpython、rubyがぐんぐん改善されてるし
このまま消えていってくれたらいいのにねぇ
出来ることなら触りたくないし
0054デフォルトの名無しさん2013/11/17(日) 18:59:24.56
PHPも改善されていってるし
まあ無理だろ?
0055デフォルトの名無しさん2013/11/17(日) 19:12:33.01
cuiだと
ruby2>pypy>php5.3以上>python>>>perl>ruby1.8
0056デフォルトの名無しさん2013/11/17(日) 19:14:26.49
PHPはfacebookのおかげの部分が大きい
0057デフォルトの名無しさん2013/11/17(日) 19:16:50.76
wordpressの方が影響大きいだろ。

facebookアプリはまあサンプルが
phpっぽい気がするので
理由としてありかもしれんが、

それよりもWordPressは本体がPHPだから、
そのプラグインもPHPで書くのが自然だし、
デザインを変えようと思った時、
そのテンプレートはPHPだ。
0058デフォルトの名無しさん2013/11/18(月) 00:07:24.33
wordpressはphpの利用人口を増やしたが、phpの改善には何も役立っていない
facebookはいろいろなコードを寄贈することで今のphpの速度がある
5.2と5.3の速度の差は、世にhiphopとして出たfacebookのphpのコンパイラによるものが多い

他の言語でもいえることだけど、ディープにその言語を使う新興の大きい企業が必要で
そこから出るリクエストに答えられる言語の開発側が必要ってことだ
0059デフォルトの名無しさん2013/11/18(月) 00:17:29.68
FacebookはDを採用したんだろ
0060デフォルトの名無しさん2013/11/18(月) 00:34:20.32
>>58
> facebookはいろいろなコードを寄贈することで今のphpの速度がある

facebookはPHPにコードを寄贈してないよ。
0061デフォルトの名無しさん2013/11/18(月) 01:32:26.63
ふーん。FaceBookが何したか知らんけど、5.3で結構速くなったよね
何があったの?
0062デフォルトの名無しさん2013/11/18(月) 02:12:48.47
しらね。でもFacebookは関係ないんだろ。
0063デフォルトの名無しさん2013/11/18(月) 09:23:10.59
ttps://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php--move-fast/
0064デフォルトの名無しさん2013/11/18(月) 09:29:16.10
>>59
バックエンドのC++の置き換えって話だっけ
0065デフォルトの名無しさん2013/11/18(月) 12:40:21.32
>>63
やっぱFacebookは貢献してるんだ
0066デフォルトの名無しさん2013/11/18(月) 18:33:54.40
次の方〜。いらっしゃいませんか〜
0067デフォルトの名無しさん2013/11/19(火) 22:52:39.31
世界はphpで出来ている。
よく見てみろ。お前の周りはphpのコードだらけだ。
0068デフォルトの名無しさん2013/11/19(火) 22:57:25.71
2chはperlです
0069デフォルトの名無しさん2013/11/19(火) 23:11:17.27
悪貨が良貨を駆逐するなんて言葉もあるし

phpが広く使われている事と、言語としての良し悪しとは分けて考えた方がよかろ
だからといってもちろん関連性皆無だと言うつもりもない
cgi駆逐するに足る、十分使える言語であり、便利な環境を提供できたからこそ普及したと思います、はい。
0070デフォルトの名無しさん2013/11/19(火) 23:35:27.90
悪貨が良貨を駆逐する

つまり今俺達が生きているのは
良貨を駆逐した結果なんだよ。
0071デフォルトの名無しさん2013/11/21(木) 13:04:58.88
>>69
cgiって・・・
0072デフォルトの名無しさん2013/11/21(木) 13:18:39.58
>>69
CGIの意味を知らなさそう
0073デフォルトの名無しさん2013/11/21(木) 13:52:05.50
仕組みとしてのCGIがサーバモジュール型サービスの旗手であるPHPに駆逐されたってことだろ
fastCGIが台頭するまでPHPのウリ扱いされてたし
0074デフォルトの名無しさん2013/11/21(木) 13:56:40.89
>>73
当時からPHP使ってたが、その売り文句に苦笑してたわ
0075デフォルトの名無しさん2013/11/21(木) 14:36:30.82
>>73
mod_perlは1996年からあったけど
fastcgiはいつからだ?
0076デフォルトの名無しさん2013/11/21(木) 14:42:52.04
>>75
PerlのFastCGIは1996年だっけな
FastCGI自体はもっと前からあるよ
0077デフォルトの名無しさん2013/11/21(木) 16:06:11.72
phpのブームは96年より後だよな
0078デフォルトの名無しさん2013/11/21(木) 16:11:19.53
>>70
クソマジメに作ったものより、テキトーに作ったものの方が愚民には受け入れられやすい
というのが俺解釈
0079デフォルトの名無しさん2013/11/21(木) 16:27:33.92
素人受けするところはDOSのバッチファイルみたいなものだな
0080デフォルトの名無しさん2013/11/21(木) 21:48:16.05
赤いピルを飲んだプログラマが使う言語>PHP
0081デフォルトの名無しさん2013/11/23(土) 09:40:11.35
?:の結合順序
とか書こうと思って開いたら>>19見てぶっとんだ

参照される側の変数は最初は図の上の$bみたいな形だが参照されると下の形に変わるということ?
0082デフォルトの名無しさん2013/11/23(土) 09:53:43.11
>>81
そんな単純な話ではないよ
配列の要素を参照した場合、その配列のコピーが正常に行われないバグないし仕様

三項演算子の優先順序が他と違ってキモイってあったな
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
>>84
後者って前に対応してなかったか?
0086デフォルトの名無しさん2013/11/23(土) 10:50:15.24
>>84
両方とも5.4でできるようになってる
0087デフォルトの名無しさん2013/11/23(土) 10:51:01.61
ああ、会社のサーバのは5.2だわ
0088デフォルトの名無しさん2013/11/23(土) 10:54:10.95
関数内で使った変数のスコープがデフォルトでローカルなのはよいこととして認める
0089デフォルトの名無しさん2013/11/23(土) 11:06:40.82
>>87
5.4以上にすると前に戻れなくなる
その2個以外に
$a = [1, 2, 3, 4];
とか対応してるし
0090デフォルトの名無しさん2013/11/23(土) 11:17:15.94
array(array(1,2,3),array(4,5,6),array(7,8,9))とか長ったらしいもんね
だが対外サービスで使ってる環境を簡単に変えるとかないわ
0091デフォルトの名無しさん2013/11/23(土) 11:18:34.51
>>90
サポートは大丈夫なん?
0092デフォルトの名無しさん2013/11/23(土) 12:46:33.18
問題が見つかっても基本は上のアプリで回避する方向だろな
気づかないところで互換性がなくなるほうがよっぽど怖い
0093デフォルトの名無しさん2013/11/23(土) 13:45:35.63
5.2使えてるってことは、客側の要件が緩々なんだろうな。php4がまだ残ってるっていうぐらいだもんな
うちの5.2はディストリがパッチ当ててくれる環境だったけど、CVEしか対応しないからダメってことになって、客の金で作り直したな
0094デフォルトの名無しさん2013/11/23(土) 23:04:12.85
当時は専用サーバーやシェルを解放してるレンタルサーバーは高額で稀で、phpは廉価なサーバーで高速にウェブアプリを動かせた
デプロイが簡単だったし
movabletypeが没落してwordpressが台頭した理由がまさにそれ
マンモス本が出てphp3を日本語対応してサービスインする国内のレンタルサーバー屋が出始めたのが2000年位から
0095デフォルトの名無しさん2013/11/25(月) 17:50:04.95
多言語がWeb開発で中途半端
PHPには追いつけない
0096デフォルトの名無しさん2013/11/25(月) 21:58:46.32
何をもって中途半端かまで書かなきゃそんな呟きは放屁と変わらんぞ
0097デフォルトの名無しさん2013/11/26(火) 15:24:40.46
追いつけないワロタ
せめて他の言語齧ってもう一度同じ台詞はいてみろよw
0098デフォルトの名無しさん2013/11/26(火) 15:41:44.01
ちょっとの手間で素人が「使えた気になる」
それが長所でもあるけど
ブラウザでしか検証してこなかったコーダなんかがプログラマ気取りになっちゃって
サーバのことなんてこれっぽっちも考えない
0099デフォルトの名無しさん2013/12/01(日) 02:56:47.35
鯖屋とコーダーの中間に位置するWeb屋
0100デフォルトの名無しさん2013/12/01(日) 06:14:32.32
鯖屋とコーダーの両方ができるWeb屋
0101デフォルトの名無しさん2013/12/01(日) 21:26:38.60
最近、PHP触ってるけど$thisがめんどくさい
0102デフォルトの名無しさん2013/12/08(日) 10:59:10.72
インスタンスのメソッドから呼び出したstaticメソッドの中で$thisが使えて呼び出し元のインスタンスを示すお馬鹿
0103デフォルトの名無しさん2013/12/09(月) 13:32:36.51
>>102
NULL
0104デフォルトの名無しさん2013/12/15(日) 02:06:12.63
今日始めたけど
ApacheとPHPの環境設定が全然うまくいかなくて
さっきXAMPPってのを知ってようやく使えるようになった。
でもdate関数使ったら時刻はずれるし(php.iniでAsia/ときょ にしたのに!)
2013年が20136と表示されるし
なんなんやこの言語は!
0105デフォルトの名無しさん2013/12/15(日) 15:06:29.97
それはさすがにお前が糞
0106デフォルトの名無しさん2013/12/16(月) 20:16:27.19
Web専門のバカでも出来る枠の言語のハズだよな?
先発の言語を駆逐できないのは、技術者の問題や、保守もあるから仕方ないんだが…
Web専門外の言語の後発フレームワークと比べられるのは流石にヤバい流れだと思う
0107デフォルトの名無しさん2013/12/16(月) 21:04:16.10
バカでもできる言語である必要ないから後発に譲るよ
0108デフォルトの名無しさん2013/12/19(木) 23:16:56.89
バカでもわかるシンプルな設計が最良で、
RFCの仕様がそこらじゅうに見えるPHPがWebにおいて
最良の選択肢なんだって思い知らされた
0109デフォルトの名無しさん2013/12/19(木) 23:43:37.58
そうか?他汎用言語のトレンド吸い上げて随分複雑化した印象だけどな
例えて言うなら水周りが貧弱なまま建て増し繰り返したオンボロ物件

RFCが見えるってのもよくわからん
言語問わずRFCに素直な実装したライブラリが整ってれば良い訳で、何が優れてる訳でもなかろ
0110デフォルトの名無しさん2013/12/20(金) 00:00:50.41
header(),md5(),$_SESSION[],$_COOKIE[]
この辺が好き。
0111デフォルトの名無しさん2013/12/20(金) 00:03:25.27
Java、C#やRoRが裏側で何をやっているのか見えない。
0112デフォルトの名無しさん2013/12/20(金) 00:54:22.62
それらと比べるならcakeやZFでは。それだとphpも事情変わらんような
0113デフォルトの名無しさん2013/12/20(金) 01:32:46.59
>>109
PHPとRubyはそう言われるな
0114デフォルトの名無しさん2013/12/22(日) 06:11:50.97
>>112
骨組みの見えるバギーやレシプロ機ぐらいイケてる
0115デフォルトの名無しさん2013/12/28(土) 13:20:15.52
Cakeの本がわからん
いきなりbakeなんか使わせるなよ!
0116デフォルトの名無しさん2013/12/28(土) 13:25:13.64
>>114
かっこいい!
0117デフォルトの名無しさん2013/12/28(土) 13:37:21.23
>>5

PHPがダメ言語な理由

* 配列ごときで、arrayの荒らし → PHP5.4から[1,2,3]と書けます
* クロージャーがない → PHP5.3で実装されました
* mixinがない → トレイと使えばおk

はい、論破
0118デフォルトの名無しさん2013/12/28(土) 13:38:46.23
今のPHP界はLaravelが通
CakePHPは古い人が使うFW
Zend Frameworkは見栄を張ってるバカが使うFW
0119デフォルトの名無しさん2013/12/28(土) 14:37:31.68
しばらく業務で使ってなかったけどLaravel初耳。フレームワークの世代交代が早いのはいいことなのかどうかって話もあるだろうけどね

ZFはすでに俺俺フレームワーク作っちゃって運用中の職場で、追加ライブラリとして組み込んだりするのには重宝したよ
スレ覗いたら下火感が漂って寂しい限りだが
0120デフォルトの名無しさん2013/12/28(土) 18:51:02.16
Laravelいいよ。日本だと知名度低いけどね
PhalconPHPが最近のおもちゃ

Zend Frameworkが見栄ってのはいまいち理解できない
フルスタックフレームワークとしては終わってるね

CakePHPはオフショアとか下請け専用状態やな
0121デフォルトの名無しさん2013/12/28(土) 18:57:12.98
Laravelが素晴らしいのは母体に実績のあるSymfonyを使ってるから
0122デフォルトの名無しさん2013/12/28(土) 19:00:17.57
個人で使うんだったらどのFWがいい?
0123デフォルトの名無しさん2013/12/28(土) 19:03:36.99
CodeIgniter
0124デフォルトの名無しさん2013/12/29(日) 10:25:37.60
外注向け
CakePHP、Symfony

個人・少人数開発向け
CodeIgniter、Laravel

CodeIgniterはライセンス問題で海外では終わってる
その点を調べてから使うべし
0125デフォルトの名無しさん2013/12/30(月) 17:28:17.28
FuelPHPのほうがいいのでは
0126デフォルトの名無しさん2013/12/30(月) 18:16:13.98
CodeIgniterのライセンスで騒いでるのは無知だけ
0127デフォルトの名無しさん2013/12/30(月) 23:13:59.93
Cakeで途中からMySQLのテーブルに列を増やしたんだがクエリがそれに追随して増えてくれん
そりゃ、$this->query()で直接書けばいいんだが、fetchなんかが増えた列に対応してくれん、、、
どこをなおせばいいんだ?
Model/*phpでdisplay属性に追加すればいいのか?
0128デフォルトの名無しさん2013/12/31(火) 10:58:09.40
>>127
http://kohada.2ch.net/test/read.cgi/php/1378659370/
0129デフォルトの名無しさん2013/12/31(火) 11:31:39.62
FuelPHPはもう終わったろ

CodeIgniterのライセンスは厳密には問題ないんだ
けどさ途中でライセンスが変わったプロダクトは好まれない
OSLとAFLを理解するのも難しいのも痛い

Yiiもオススメ
0130デフォルトの名無しさん2014/01/02(木) 03:35:57.15
FuelPHP2モダンでいい感じじゃん
イマイチ人気でないけど
0131デフォルトの名無しさん2014/01/02(木) 03:51:33.34
フレームワーク語るスレ的な流れだよな
スレタイ関係ないやんかどないなっとんねんな
ごめんなさい話題触れないのに煽んなって話すよねすみません話題降ります

2014年もPHP安泰っすかねセンパイ!!
ねえ!
ねえ…。
0132デフォルトの名無しさん2014/01/02(木) 09:50:50.06
FuelPHP2完成してないでしょ

FuelPHPは終わったというより、スタートに立ってない
メジャーバージョンアップで互換性がなくなりそうなの見えてるのに
誰も使えない

もてはやしてるの日本の一部の人だけ
0133デフォルトの名無しさん2014/01/04(土) 15:49:55.33
すみませんPHP初心者です、これ動かないんですが何が悪いですか??
http://i.imgur.com/hmfbhY1.jpg
0134デフォルトの名無しさん2014/01/04(土) 16:02:03.01
>>133
WebProg板の適切なスレに行って聞いてくれ
その際「どう動かないのか」も添えるようにね
0135デフォルトの名無しさん2014/01/04(土) 16:06:17.87
了解しましたm(._.)m
0136デフォルトの名無しさん2014/01/05(日) 13:28:27.56
phpって言語ってよりテキストツールみたいなもんだと思ってる
Awkやsedみたいな
0137デフォルトの名無しさん2014/01/05(日) 18:48:03.92
>>136
というか最初は実際にPerlで書かれたツールだった。
色々やってく内に言語になっちゃったんだとか。

ただ、テキストツール…っつーと何となくしっくりこないな。
だってPerlの時点でテキストツールだもの。
Web特化ツール、って感じじゃね?
0138デフォルトの名無しさん2014/01/05(日) 21:01:14.38
本のサンプルコード自分で入力して書いたんだが、エラーの箇所がわからん・・・
0139デフォルトの名無しさん2014/01/05(日) 21:07:10.19
>>138
エラーの箇所がわからないんだったら
エラーじゃないんだよ
01401382014/01/05(日) 23:39:39.43
ブラウザで「**の**行目」ってでて入るんだけど、原因は全然別の所のタイプミス、とか
Cakeを使ってるんだけどバグの原因がよー分からん場面が多くてつらい
■ このスレッドは過去ログ倉庫に格納されています