【PHP】下らねぇ質問はここに書き込みやがれ 8 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/03/15(水) 00:41:22.79ID:ko4BTSP20
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 7
http://echo.2ch.net/test/read.cgi/tech/1478657006/

次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2017/10/29(日) 02:02:51.30ID:k1qoOab2d
>>791
警告とエラーの違いはわかるか? テストでは警告はすべて出力させる。
PHP7ではassertが使えるので、活用するように。
2017/10/29(日) 02:11:50.01ID:k1qoOab2d
ちなみにPHPのIDEはPhpStormがオススメだ。
2017/10/29(日) 02:25:50.82ID:k1qoOab2d
C/C++などでも一般に言えることだが、IDEのデバッグ機能はユーザーによって実行を制御したり、変数の中身を確認できる。例えば、指定した行で実行を止めたり、少しずつ実行させたりできる。
2017/10/29(日) 10:41:47.50ID:htd7uCcc0
file_get_contentsを何回かやるので、関数化しました。
header部分も欲しいので、$http_response_headerも一緒にreturnするようにしたのですが、
関数化前と違うものが返ってくるようになりました。
キャッシュか何か残ってるのでしょうか?何が原因でしょう?
Set-Cookieヘッダを使うので、返ってくるものが違って挙動がうまくいかなくなって困ってます。
ベタ書きすればうまく動作するのですが、コードがどうしても長くなって読みづらくて。
2017/10/29(日) 10:46:01.97ID:htd7uCcc0
補足です。関数内で何回かfile_get_contentsをやってるわけではありません。
関数内では1回しか使っていません。
前後に共通のコードが書かれてたり、file_get_contentsのリクエストヘッダを少し変えてます。
2017/10/29(日) 11:10:05.24ID:k1qoOab2d
二つの戻り値をどういう風にreturnしてる?
2017/10/29(日) 11:25:49.77ID:k1qoOab2d
ソースをアップするのが確実だけど、公開できないの?
2017/10/29(日) 11:26:37.79ID:htd7uCcc0
>>797
配列です。
return [ $http_response_header, $body ];

おかしいのは、どうもSet-CookieのセッションIDが変わってしまってるのが原因のようです。
'http' => [
 'header' => "Cookie: " . $this->getCookie($url) . "\r\n"
]
毎回このようなクッキー送るコンテキストは指定して、
file_get_contentsしてから、新規のクッキーは、
$this->setCookie($url, $http_response_header);
という具合にしてからreturnしています。

ベタ書きだとちゃんと動作します。
2017/10/29(日) 11:31:50.57ID:htd7uCcc0
>>798
private function request($url, $context = null) {
 $http_request_header = null;
 if (!$context) {
 $cookie = $this->getCookie($url);
 $context = [
  'http' => [
   'method' => 'GET',
   'protcol_version' => 1.1,
   'ignore_errors' => true,
   'header' => 'Host: ' . parse_url($url)['host'] . "\r\n",
   'Cookie: ' . $cookie . "\r\n",
   "Connection: close\r\n"
  ]
 ];
 $body = file_get_contents($url, false, stream_context_create($context));
 $this->setCookie($url, $http_response_header);
 return [$http_response_header, $body];
}
こんな感じです。
2017/10/29(日) 11:33:41.53ID:htd7uCcc0
インデント調整ミスってif文の閉じ消してしまいました。

private function request($url, $context = null) {
 $http_request_header = null;
 if (!$context) {
  $cookie = $this->getCookie($url);
  $context = [
   'http' => [
    'method' => 'GET',
    'protcol_version' => 1.1,
    'ignore_errors' => true,
    'header' => 'Host: ' . parse_url($url)['host'] . "\r\n",
    'Cookie: ' . $cookie . "\r\n",
    "Connection: close\r\n"
   ]
  ];
 }
 $body = file_get_contents($url, false, stream_context_create($context));
 $this->setCookie($url, $http_response_header);
 return [$http_response_header, $body];
}
2017/10/29(日) 12:34:43.84ID:k1qoOab2d
Cookie に =>がない。
2017/10/29(日) 12:35:56.57ID:k1qoOab2d
じゃなかった。カンマとピリオドを間違えている。文字列をつなげるのはピリオド。
2017/10/29(日) 12:40:46.31ID:htd7uCcc0
>>802
レスありがとうございます。
そこはドット演算子で連結しているのでそれで問題ありません。
って・・・ドットじゃなくてカンマになってる。
お恥ずかしい。エラーにもならないので気づきませんでした。
どうもありがとうございます。無事動くようになりました。
2017/10/29(日) 12:41:28.48ID:htd7uCcc0
リロードしてませんでした。感謝!
2017/10/29(日) 15:35:37.96ID:DVVe4DD2M
IDEとxdebug使ってのデバッグがイマイチ使いこなせないわ
毎回設定してはめんどくさくてやめる
フレームワークとか作る仕事ならまだしも、
フレームワーク使ってつくるもんだと変数トレースしたいとか
ブレイクポイント使いたいとかあまりない気がしてて
複雑怪奇なシステムとか作るなら必要なんだろうが
iOSアプリとかのSwiftとかだとないと厳しいけどさ
2017/10/29(日) 15:38:34.24ID:k1qoOab2d
モダンブラウザなら、ブラウザからでもデバッグできるし、色んな機能があるよ。
2017/10/29(日) 17:24:25.73ID:xmzrQ2Sc0
もうechoと打たなくていいんだ!
809デフォルトの名無しさん (ワッチョイ 6beb-Jryx)
垢版 |
2017/10/29(日) 17:27:03.74ID:lZu6ERZg0
有料のPHPStormじゃなくて
無料のnetbeans使ってバグ全部取ったのに
ブラウザが真っ白のまま
もう何がなんだか・・・
2017/10/29(日) 22:41:34.91ID:RyqL6Q1z0
バグ全部取りきれてないんだろ
2017/10/29(日) 22:51:58.54ID:k1qoOab2d
>>809
警告をオンにしてhtmlソース見ろよ
2017/10/30(月) 00:11:23.58ID:UPoKErNA0
>>809
netbeansでもxdebug使えるからトレースすりゃいいんじゃないの?
バグじゃなくてエラーを全部なくしただけでしょ?
本当のデバッグはそこがスタートだよ
どうせエラー表示したら500エラーが出てるよ

>>806
作り方がうまいからじゃねーの
まぁ、新規で使うことは少ないけど、改修や保守開発だと必須じゃね
2017/10/30(月) 00:11:52.95ID:UPoKErNA0
>>809
あ、PHPってちゃんとログにエラー残してるからログも見ろよ
2017/10/30(月) 00:12:19.06ID:UPoKErNA0
>>809
PHPのログ、フレームワークのログをみて
さらに自分でログ出力もしっかりしてな
2017/10/30(月) 00:56:01.34ID:JH+/yPWP0
>>806
フレームワークの時点でバグが潰されてるから
FW使う一方ならそんな
深いデバッグ要らないってのはあるな

>>812
保守だとプログラムを理解しづらいからね
2017/10/30(月) 05:43:01.84ID:OFPISIv40
テンプレート言語でフレームワークを使うという冗長
2017/10/30(月) 14:24:02.82ID:6Zg8+NGr0
Google Apps Scriptで
http://www.pre-practice.net/2017/10/line-bot_22.html?spref=tw
ここを参考にLINEBOTを作っていて、
文章中の特定の文字列に反応して返答するようにしたのですが、
(1)
else if (strpos(input_text, "寒い") !== false ) {
reply_text = "もう冬だね";
  }

これを挿入しても反応してくれません。
その上、その下部に配置した

(2)
else {
reply_text = "答えられません";
}
が反応しなくなります。
(1)を削除すると、(2)は動きます。
(1)のstrposを正常に稼働させるには
何がいけないのでしょうか教えてください。
お願い致します。
2017/10/30(月) 14:33:01.75ID:6Zg8+NGr0
>>817
訂正
(2)だからというわけではなく、
(1)があるとその下部のelseがすべて無効になります
削除すると、すべてのelseが反応するようになります。
2017/10/30(月) 14:52:57.48ID:xmd0Xo8s0
データベースに記事のデータを無数に登録しておき、それをPHPで読み出して
ブログサイトのように表示するみたいなプログラムを作りたいのですが
そういうのってWebサイトではありがちな気がするのですが、何か簡単に実現できる
フレームワークやツール的なものってあるのでしょうか
2017/10/30(月) 15:21:21.27ID:TBBBeiZLa
>>817
Google Apps Scriptってよく知らんけどJavaScript互換じゃないの?
2017/10/30(月) 15:38:04.49ID:6Zg8+NGr0
javaScriptがわからないのですが、
上記の>>817のソースをそっくりそのままコピペすると、正常に動くんです

else if (strpos(input_text, "寒い") !== false ) {
reply_text = "もう冬だね";
  }

ほかは何もいじらずこれだけを挿入するのですが、「寒い」のメッセージに無反応なんです。
2017/10/30(月) 15:51:26.23ID:6Zg8+NGr0
>>817質問変えます
http://www.pre-practice.net/2017/10/line-bot_22.html?spref=tw

上記URLのソースコードを使用して、
文章中に「寒い」が含まれるメッセージが来たら
「冬ですね」と返答する事ができるようにするにはどうしたらいいかお願いですから教えてください。
2017/10/30(月) 16:09:26.30ID:6Zg8+NGr0
////////////////////////////
var input_text = e.message.text;
var reply_text = "";
if (input_text == "こんにちは") {
reply_text = "元気?";
}
/////////////////////////

現状は「こんにちは」のテキストに完全一致でしか「元気?」と出力しない状態です。
これを文章中に「こんにちは」が含まれる部分一致の場合に「元気?」と出力する方法教えてください。
連投すんません、このくだらない問題に2日無駄にしてつらいです。
2017/10/30(月) 16:14:49.49ID:sK+sC+Du0
>>822
strpos このメソッドって存在しますか?

文章中に"寒い"があるかどうかを判定するだけなら

input_text.match(/寒い/)

で判定出来るんじゃないかな?
2017/10/30(月) 16:31:42.84ID:vEI+28/Ca
>>823
えっと、間違ってたらごめんだけど、見た感じ>>817はJavaScriptのコードで、strposはphpの関数だから、存在しない関数を使ってるせいでエラーになってるんじゃないかな
containsやindexOfみたいなJavaScriptの関数で判定してみたらどうでしょうか
2017/10/30(月) 16:45:24.01ID:6Zg8+NGr0
>>824
>>825
ありがとうありがとうありがとうありがとう
ヒントくださって本当にありがとう
行き詰まって調べたくても何もなかったからどうにもできなかった
その二つ調べて頑張ります本当にありがとう
2017/10/30(月) 17:15:37.08ID:JH+/yPWP0
>>819
ワードプレス
2017/10/30(月) 17:34:29.87ID:6Zg8+NGr0
>>824
>>825
     )、._人_人__,.イ.、._人_人_人
   <´ indexOf使ったら動いたよ!! >
    ⌒ v'⌒ヽr -、_  ,r v'⌒ヽr ' ⌒
// // ///:: <   _,ノ`' 、ヽ、_ ノ  ;;;ヽ  //
///// /::::   (y○')`ヽ) ( ´(y○')    ;;|  /
// //,|:::     ( ( /    ヽ) )+ あ   ;| /
/ // |:::     +  ) )|~ ̄ ̄~.|( (   り   ;;;|// ////
/// :|::       ( (||||! i: |||! !| |) ) が    ;;;|// ///
////|::::    +   U | |||| !! !!||| :U と ;;; ;;;| ///
////|:::::       | |!!||l ll|| !! !!| |  う ;;;;;;| ////
// / ヽ:::::       | ! || | ||!!|    ;;;;;;/// //
// // ゝ:::::::: :   | `ー----−' |__////
2017/10/30(月) 18:06:32.72ID:ki8heFlTa
>>828
良かったけど、そもそもなぜここで聞いたんだw
がんばってください
2017/10/30(月) 18:11:09.44ID:sK+sC+Du0
優しいスレだなあ、ほっこり
2017/10/30(月) 19:38:09.54ID:EhzU2sDl0
>>806
初心者がいきなりフレームワークという最近の傾向には俺も疑問

フレームワークを知らなかったからこそ、
初めてチーム組んでフレームワークを使った開発をした時に
その必要性や有難味を理解できるもんだ

酷いのになるとフレームワークの使い方しか知らなくて
全く潰しの効かない人とかいるしね
最近のruby界隈は結構酷いのがいる(もちろんPHPよりはましだがw)
2017/10/30(月) 19:48:34.15ID:EhzU2sDl0
>>782,784
どうなってる?と言われても知らんがなw

そう思うなら自分で作ればいいじゃない
curlの関数群にOOPなインターフェースを与えるのなんて簡単な事だろ

CURLFileがいけてない?
PHPのcurlなんて単なるlibcurlのうっすーいラッパーに過ぎないが
PHPのcurlは「@」の扱いからして全然いけてないよw

他人が設計したクラスに文句垂れるだけでろくにラッパークラスも作れない人なの?
違うでしょ?

他のレス見ても君はPHPには明らかに向いてない
君の性格にはPhthonがおすすめ

PHPなんてクソ言語はさっさと捨てて
ついでにこんな糞スレにも二度と戻って来ない方がいい
2017/10/30(月) 21:00:34.82ID:6Zg8+NGr0
ほんとマジありがとうございました。
2017/10/30(月) 21:19:35.82ID:6OnifbBOM
>>831
まあ、言いたいことは分かるよ
でも、たとえばAPCキャッシュがどういう理屈で速い機械語書き出してるか?
とかそういうことまで把握してるペチパーなんてほんの一握りだろう
それでもみんなAPCキャッシュ使ってるからな
どういう層までやりこんで覚えるかは時代の流れもあるんじゃないかなぁ
慢性的な技術者不足だし、この傾向はどんどん進んでいくと思うけどね
2017/10/31(火) 01:49:29.16ID:TDK9QP8S0
APCなんて5.3の頃にとっくに滅んだろ・・・。
2017/10/31(火) 07:33:32.84ID:hw8F/Qhk0
>>827
やはりワードプレスってそういうものなんですか
どうもです
2017/10/31(火) 14:52:17.88ID:TJmT6ypb0
>>835
ああOPcacheだっけか、今は
歳とって記憶がもうやばい
838デフォルトの名無しさん (ワッチョイ 89c9-xXVv)
垢版 |
2017/10/31(火) 21:30:40.63ID:vrxKr+8C0
てか、APCにしろOPcacheにしろ、中間コードをキャッシュしてるだけで、そっこから実行コードにするのは別のとこでしょ?
2017/11/01(水) 00:51:20.56ID:Do6LjQMZ0
初心者はフレームワークを使わないほうがいいんですか?
2017/11/01(水) 01:26:07.73ID:2VhajyTi0
目的次第か
ただサイト作りたいだけなら使うべきだろうし、
PHPを極めたいとかプログラミングを楽しみたいとかなら
使わずに一から作る方がいいかもしんない
2017/11/01(水) 06:31:00.29ID:SVj9mMjCd
phpはテンプレート言語だからフレームワークなんて必要ないしね
2017/11/01(水) 08:06:41.70ID:y4RLmNPl0
車輪の再発明うんぬん言うのは、手っ取り早く目先の仕事を片付けたいなら
フレームワークのような既存コード使えって話であって、プログラマーとして
スキルを高めたいって話なら、例え誰かが既に実装してる機能であっても
自分で試行錯誤して作る経験をつむことに意味があるからね
この点については「プログラマが知るべき97のこと」にもあるね
843デフォルトの名無しさん (ワッチョイ 89c9-xXVv)
垢版 |
2017/11/01(水) 12:25:32.18ID:6Bes9s9x0
97って多すぎるんだよな… 8つくらいに絞れよ…
844デフォルトの名無しさん (ワッチョイ beeb-tZNS)
垢版 |
2017/11/03(金) 00:16:36.67ID:N/6B30hr0
ubuntuでphp7をpurgeしたんだけどphp -vでみたら
バージョンが7.0になったままなんだけど
php7がpurgeできてないってことですか?
2017/11/03(金) 00:24:51.93ID:khFcMPIR0
>>843
いまググったら107個に増えてた
2017/11/03(金) 02:49:44.71ID:9CXEo34m0
97を8つくらいに絞ったら
個々のページが増えるだろ

つまり8章立ての本になる
20ページとかの本じゃ売れないからな
2017/11/03(金) 04:27:57.37ID:E/qemGJoa
PHPはコメントに#も使えますが
シバンは<?phpより前に書かれるので、
これはシェルスクリプトやPerlのように「コメントだから無視されている」
というわけではないですよね?
何故PHPでもシバンが無視されるのでしょうか?
2017/11/03(金) 04:30:09.06ID:9CXEo34m0
そう読める機能が実行環境に備わってるから
2017/11/03(金) 11:45:13.22ID:E/qemGJoa
「一行目が#!から始まっていたら無視をする」
という処理を行っているのでしょうか
たしかにふるまいを見るとそうしているように見えますが、
ドキュメントのどこに書いていますか?
2017/11/04(土) 12:45:29.26ID:lmIJ2Kma0
ファイル単体が純粋にPHPのコードで書かれていても
PHPはテンプレート言語でもあるのでHTMLとの境界を定めるために<?php開始タグが必要
これはCGIとして動作させるためにシバンを書く時も例外ではないので
2017/11/05(日) 16:14:45.84ID:6RtNgLoYa
PHPで標準出力を一時的にファイルに変えることは出来ますか?
852デフォルトの名無しさん (エーイモ SE8d-VfAY)
垢版 |
2017/11/05(日) 17:48:41.64ID:YrMOHTVWE
なんでここIPでないの?
2017/11/05(日) 17:53:09.84ID:5rLvqL+M0
スレ立てる時にワッチョイの指定で出来るけど、
そこまでやる必要があるのかな?
2017/11/05(日) 21:18:41.00ID:mZtOvkfq0
IPまではいらない
2017/11/06(月) 02:07:54.67ID:4QwjxNvAa
https://qiita.com/shinkuFencer/items/d7546c8cbf3bbe86dab8

file_get_contentsのタイムアウトを設定しても
何故か設定値の2倍の時間がタイムアウトまでの時間になる
という情報がネットにあります
これはstream_context_createで作成したストリームコンテキストを
fopenに渡した場合でも同じなのでしょうか?
856デフォルトの名無しさん (エーイモ SE8d-VfAY)
垢版 |
2017/11/06(月) 09:37:09.15ID:RWNw7rPfE
自分で試せば分かることを聞くのかw
2017/11/06(月) 10:41:08.05ID:8ugsVuBB0
サーバーサイドで、PHPがNode.jsより得意なことってなんでしょう?

サーバーサイド・クライアントサイドで共通の言語を使うという夢を捨てきれずも
とりあえずPHPに甘んじているところです
2017/11/06(月) 11:07:34.47ID:xs24eGnra
>>856
単に「試して終わり」の問題じゃないですから。
タイムアウトが2倍になるのがそもそも意味不明です
その意味不明の現象は今でも存在するのかとか
原因は分かったのか、そういう周辺の情報も知りたいので質問しました
2017/11/06(月) 11:09:54.91ID:xs24eGnra
>>857
デフォルトの関数が揃っていることでしょうか
PHPは十徳ナイフみたいなものです
つっこんだ使い方しようと思うといまいち使えないところも笑
860デフォルトの名無しさん (エーイモ SE8d-VfAY)
垢版 |
2017/11/06(月) 11:39:06.57ID:RWNw7rPfE
>>858
タイムアウトが2倍になる理由を調べたいなら--enable-debug付けてコンパイルしたphpでgdbで調べるしかないんじゃないの?

>これはstream_context_createで作成したストリームコンテキストを
>fopenに渡した場合でも同じなのでしょうか?

file_get_contentsと同根の現象かは自分で試せば分かるよね
丸投げしないで試した上で質問してよ
861デフォルトの名無しさん (エーイモ SE8d-VfAY)
垢版 |
2017/11/06(月) 11:43:22.57ID:RWNw7rPfE
file_get_contentsだとタイムアウトが2倍になるので
stream_context_createで作成したストリームコンテキストを
fopenに渡したどうなるか試してみたら2倍に(なりました|なりませんでした)
これはどうしてでしょうか?

なら答えたくなるのにな〜
2017/11/06(月) 12:07:39.62ID:xs24eGnra
>>860
既にやってる人がいるなら聞く方が早いですよね?
なんで車輪の再発明を強いるんですか?
2017/11/06(月) 12:07:52.24ID:8ugsVuBB0
>>859
なるほど、やはりPHPはWebに特化した言語だけに、汚らしいけど話が早い言語って
感じなんですかね、他と比べると
自分にとってはそれはけっこう魅力的かもしれません
サーバーサイドに労力使ってる場合じゃないって考えなので

しばらくはPHPで良い気がしてきました、どうもです
2017/11/06(月) 12:08:58.41ID:xs24eGnra
>>861
あなたの答えたい|答えたくないなんてどうでもいいんですよ
有能な人はしょうもない出し惜しみはしません
2017/11/06(月) 12:14:52.40ID:mhUqyjwpx
>>857
node.jsってwindowsで動かないじゃないか
2017/11/06(月) 15:16:15.83ID:YE3zxJrDM
はい?
2017/11/06(月) 17:39:49.53ID:GazGq00E0
元々MVCやWebフレームワークなんかの概念が薄かった時代に開発された
C言語用のWebフレームワークの前身みたいなもんで元々プログラム言語として開発されたものじゃない
他に飲まれるの嫌って発展優先させて作りなおすこともしなかったから
エイリアス作ったりJavaに似せたり文法的に扱いやすいものになったけど汚いもんになってしまった
省略可能な引数に後々問題が出てやっぱ省略だめ!って言いたくなるのは仕方ないとしても
歴史的理由を言い訳にしてるものはさっさと廃止すればいいのに
2017/11/06(月) 19:44:28.39ID:tjV5ukzM0
>>857
PHPは使うハードルが低いのがメリット
現にあなたが甘んじてるのが動かぬ証拠

Nodeはクラサバを共通化できても
導入のハードルが高い
そもそもJavaScriptが扱いにくい

ぶっちゃけJSの仕様も汚い
同じ汚いなら使いやすい方が良い
2017/11/06(月) 20:16:13.56ID:HXs9Xdf90
車輪の再発明をするな=「手を抜くこと」と勘違いしてるアホっているよな

Wikipediaにすら
> プログラマもしばしばその技術を深く理解して自身の技術を向上させるために敢えて「車輪の再発明」をすることもある
と書かれているのになぁ…

これじゃPHPer()と揶揄されるのも仕方ないわw
2017/11/06(月) 20:23:03.01ID:HXs9Xdf90
>>863
PHPは短時間で「とりあえず動きゃいい」って感じで書くのには良い言語だが
「正しく」書こうとすると、他言語の経験がないとかなり難易度が高い

例えばGETリクエストの値の取り方
例えばPDOでのDB接続
例えば正規表現
挙げればきりがないが、まともなコード載せてるページなんかほとんどないよ

知識がないと、うんこの海から金塊を探し出すぐらい難しい
2017/11/06(月) 20:35:09.12ID:HXs9Xdf90
ちなみに正規表現界隈では、PHP使いはもう正規表現をblogに書くな
なんて何年も前に言われてたし
今でもPHP使いが載せてる正規表現はレベルが低すぎて話にならない
とよく言われる

まぁでも「正しく」書く必要がないケースなら
結果を最短で出せる事もよくあるから書けたら便利よ

例えば手元でちゃちゃっとスクレイピング処理したい時とかね
下手すりゃ他言語の重いIDE起動してる時間でPHPなら結果まで出せる
2017/11/06(月) 23:27:37.35ID:B8HU4dAL0
>>868
いやJavaScriptの方がPHPよりだいぶマシ。
ここ3週間ほどPHPをいじってみたが、変な癖が付くかも、というのは分かる。
2017/11/07(火) 02:54:22.53ID:2tGtnuO50
正規表現のスクリプトは基本コピペしかしたことないわ
エラー出たらまんま知恵袋に乗っけてベストアンサーをまた再コピペ
これで一度も困ったことない
今後もずっとこれで行くつもり
2017/11/07(火) 04:19:21.38ID:3AcTSaMS0
>>例えばPDOでのDB接続

確かによくわからんエラーばかり出る
2017/11/07(火) 06:16:53.91ID:/dIYjzhA0
>ここ3週間ほどPHPをいじってみたが、変な癖が付くかも、というのは分かる。
どういう変な癖?
2017/11/07(火) 12:19:29.07ID:b0eaqMwO0
結論としてはサーバーサイドはRubyとかJava使えってことなの?
2017/11/07(火) 13:33:59.17ID:gh/A0PF2M
>>864
有能な人でもこの書き込み見たあとに書き込むことはない
878デフォルトの名無しさん (ワッチョイ 3dc9-euBz)
垢版 |
2017/11/07(火) 15:38:49.25ID:JdOQp9jh0
>>864 は、せめて自分が有能になってから発言すべきだったな。
2017/11/07(火) 17:00:01.66ID:qTtPzD5n0
>>876
小規模ならJavaよりPHPの方が手軽で使いやすい
2017/11/07(火) 17:55:39.61ID:lL2IWG1w0
スマホアプリから始めてる最近の連中には1つの言語でいいから楽かもしれないけど
Javaは時間的な開発コストがかかりすぎ
PHPがいいかといったらPythonとかと比べちゃうと良くないけども
2017/11/07(火) 18:10:39.32ID:AlF6JHNEa
サーバーサイドなら今のところGo言語が一番使い心地いい
でも最近Elixirが気になる
882デフォルトの名無しさん (ワッチョイ 99b3-7bFm)
垢版 |
2017/11/07(火) 18:36:43.37ID:/3lRCBy00
ワールドワイドウェブ←PHP。
業務システム←Java。
こういう使い分け。
作られた目的で使うのが楽。
2017/11/07(火) 19:12:10.18ID:44ffyb5e0
PHPを勉強しちまった
Javaは勉強したくない・・・
2017/11/07(火) 19:53:28.62ID:1fNnAx110
Javaはガチガチすぎて自由度がないからな
コードは長ったらしいものが出来上がるし出来れば触れたくない
自由度高すぎでなんでも配列になりがちなPHPはコード汚くなりがちだけど個人の力量次第
簡単に始められるけど素人向けにみえて全然素人向けじゃないのがPHP
PythonはPHPerが次に学ぶには最適
オブジェクトと手続きが混在した同じようなパラダイムだからとっつきやすいだろう
Goは知らね 一度やろうとして入れたらアンチウイルスソフトが反応したから諦めた
885デフォルトの名無しさん (ワッチョイ 99b3-7bFm)
垢版 |
2017/11/07(火) 20:21:31.14ID:/3lRCBy00
同じことが出来るなら好き嫌いで選ぶのも良いのだが、JavaとPHPは明らかに対象が違う。
886デフォルトの名無しさん (ワッチョイ 99b3-7bFm)
垢版 |
2017/11/07(火) 20:22:50.59ID:/3lRCBy00
対象による分類でいえばPythonはJavaと同じグループに属するのではないか。
2017/11/07(火) 22:02:46.43ID:1fNnAx110
対象なんてPHPと比較してんだからWebアプリに決まってる
2017/11/07(火) 23:51:12.20ID:Sa0oaD5/0
>>875
汚いコードを書く癖、だな。

というか仕様が汚いから、綺麗なコードを(上級者でも)書きにくい。
だからPHPには本質的に綺麗なコードがない。(はず。或いは他言語と比べて圧倒的に少ない)
この結果、PHPのみのPHPerは綺麗なコードを見たことがなく、何が綺麗なのか理解出来ない。
たぶんこれがPHPerが強烈に馬鹿にされる理由ではないかな。

JavaScriptの問題は局所的なので上級者なら回避出来るし、ちゃんと書けばかなり速く動く。
(実際は糞コードが蔓延しているが)
PHPの場合は上級者でも「これでどうしろと?」になってしまう。腕があっても発揮しようもない。
これが上級者が強烈にPHPを敵視する理由だろう。
逆に言えば、腕が悪くても(上級者に)置き去りにされないし、
仕様の洗練具合も「ちょっと調子に乗り始めた」中級者に成り立ての頃と合致しているから、
その辺の人達にとっては非常に心地いいはず。これが多数から支持されてる理由だろう。
人数でいえば必ず上級者<<<中級者<<<初心者だし。

例えば、Cの関数ポインタの型宣言とか、洗練されてはいるが洗練されすぎてて意味不明だ。
そこはGoでは反省して仕様としての統一性より可読性を取ったと公式に言われてる。
https://blog.golang.org/gos-declaration-syntax
従来はほぼ全ての言語が「上級者用」に出来てた。
ただ今はもう全員がプログラミングする時代だから、変わりつつあるって事だろう。
PHPはある意味「馬鹿に丁度いい頃合い」の仕様だから、人数だけで言えば支持されることになる。

とはいえ、綺麗なコードを書くことも、後からのメンテと実行性能を上げる手段でしかないから、
使い捨て主体で早くリリースすることが重要なWebの世界では必ずしも必要ではない。
それがいまだにPHPが盛んな理由だろう。
2017/11/08(水) 01:26:15.87ID:2WiQV3soa
世界の嫌われ言語第二位にランクインしたぞ
890デフォルトの名無しさん (ワッチョイ 99b3-7bFm)
垢版 |
2017/11/08(水) 07:48:26.15ID:2qR6LDLx0
二位か。
名誉である。
2017/11/08(水) 11:19:42.51ID:jWA44EcM0
3位と4位の間に超えられない壁がある4位
https://japan.zdnet.com/article/35109803/
タイトルは嫌われてるって書いてるけど使いたくない言語が正しい
変態言語は上位になる
シンプルなPythonに比べて複雑なRubyが上位なのも納得
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況