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

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

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

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

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

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

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0204nobodyさん2012/11/28(水) 19:22:11.64ID:???
http://www.php.net/manual/ja/function.array-diff.php でどうだろう?
02052022012/11/28(水) 19:23:25.73ID:4Uq9YV8B
>>204
おおお、まさに求めていたものです!ありがとうございます
0206nobodyさん2012/11/29(木) 07:23:56.78ID:???
関数ないかな?と思ったらマニュアルの関数のページくらいチェックしようよ
0207nobodyさん2012/11/29(木) 07:34:07.15ID:???
このスレいらないっすね^^;
0208nobodyさん2012/11/29(木) 07:34:56.77ID:???
このスレって関数聞くためだけにあるのか
0209nobodyさん2012/11/29(木) 07:37:22.62ID:???
関数ないですか? 20%
データベース関連 10%
セッション関係 10%
俺は誰の指図も受けないスレチオナニー質問 60%
0210nobodyさん2012/11/29(木) 08:22:27.09ID:W4c6bNmg
回答の内訳
そんなこともわからないのかクズ 40%
マニュアル読め 20%
もっと難しい質問持ってこいカス 30%
ああ、それはね〜で〜だよ 10%
0211nobodyさん2012/11/29(木) 08:26:18.78ID:???
質問する時の注意に明記されているのだから守らないのはルール違反
0212nobodyさん2012/11/29(木) 08:27:24.87ID:???
いい加減sageること覚えろや
0213nobodyさん2012/11/29(木) 08:30:49.33ID:W4c6bNmg
俺は誰の指図も受けない
0214nobodyさん2012/11/29(木) 15:19:14.28ID:???
暇だから最初から目を通してみたけど、
秀丸が最強ってこと以外何もないじゃなかこのスレ
0215nobodyさん2012/11/29(木) 15:27:42.58ID:???
馬鹿が1人まじるとこうなる
別スレに分けたのになんでいつまでこっちにいるのかね
0216nobodyさん2012/11/30(金) 20:50:54.54ID:???
オレらプロのスキルアップのためにと思ってこのスレを覗いてみたんだけど、素人ばっかだな
0217nobodyさん2012/11/30(金) 21:26:07.01ID:???
>>216
さすがプロかっこいいですね。
大阪府警でサイバー捜査官募集してるのでご自慢のPHPスキルでぜひ応募してください。
0218nobodyさん2012/12/01(土) 00:38:52.44ID:???
エラー:>>216は既にサイバー捜査官です。
0219nobodyさん2012/12/01(土) 15:19:34.93ID:sw6dUIr5
相談です
PHPでフォームから送るパラメータで、例えば「在庫あり」「在庫なし」のようなものを
数値で定義するとき、
在庫あり:1
在庫なし:0
みたいに1と0で表現するのはあまりしない方が良いんでしょうか。

if(isset($params['stock'])){
if($params['stock'] == 1){
//在庫ありの処理
}else
if($params['stock'] == 0){
//在庫なしの処理
}
}

上記のように、isset()で判別して分岐する処理だと$params['stock']がカラの値(入力なし)の場合でも
在庫なしの処理にまわってしまいなんだかなぁという感じです
if(is_numeric($param['stock']))などで再判定すれば良いのですが、冗長というか…
1or0ではなく、1or2などにした方が良いんでしょうか
どうしてますか?
0220nobodyさん2012/12/01(土) 15:25:55.68ID:???
>>219
===にすれば?
0221nobodyさん2012/12/01(土) 16:04:48.30ID:???
チェックボックス使えば
0222nobodyさん2012/12/01(土) 16:57:21.18ID:???
仕様による

あり なし 未定義の3値をフォームでどう表現するんだい?
0223nobodyさん2012/12/01(土) 17:05:50.29ID:???
>>220
おお…、恥ずかしながら一度も===を使ったことがありませんでした
これが正解のように思います、勉強してみます!

>>221
画面のデザイン上プルダウンで考えてます。CBは確かにこの場合安心ですね

>>222
プルダウンで、未定義を<option value="">在庫の状態:すべて</option>で設定しようとしてました
そしてそれこそが、カラで送られてくるケースとして困っていたのでした(==0にヒットしてしまうので)

皆さんありがとうございました
0224nobodyさん2012/12/01(土) 18:57:46.44ID:???
PHPで誰もが通る道だよなぁ。
バグを生むので、可能な限り === を使うようにしたほうがいい。
特に strpos で文字列の先頭にヒットする場合とか。
0225nobodyさん2012/12/01(土) 19:20:58.86ID:???
はい?用途に応じて使い分けろよ
0226nobodyさん2012/12/01(土) 19:26:08.65ID:???
すみません、実際試してみたら
if($val === 0) にヒットしませんでした
if($val === "0") にはヒットします
GET送信される<option value="0">text</option>の値って、文字列として扱われるんですか?
実際var_dump($val)すると string(1) "0" ってなったし…
かなり恥ずかしい質問してますね、すみません
0227nobodyさん2012/12/01(土) 19:35:18.29ID:???
そうだよ
謝らなくてもいいけど、IDは出してね
0228nobodyさん2012/12/01(土) 20:58:23.48ID:???
デザイン目的でHTML変更しない方が良いと思うよ
0229nobodyさん2012/12/01(土) 22:10:09.20ID:TogwSkE+
人が書いたコードをたくさん読んで勉強したいのですが
なにかおすすめはないでしょうか?
ためしにwordpressを見てみたのですがカオスなことになっていたので
それ以外でお願いします…
0230nobodyさん2012/12/01(土) 22:12:42.91ID:???
自分のレベルは?
0231nobodyさん2012/12/01(土) 22:16:16.93ID:TogwSkE+
>>230
どう答えていいのかわかりませんが
勉強し始めて半年くらいのレベルです
0232nobodyさん2012/12/01(土) 22:19:11.57ID:???
>>231
Zend Framework
phpmyadmin
phpbb
0233nobodyさん2012/12/01(土) 22:26:16.20ID:???
半年でPHPしかやったことないなら
合計100kb単位のコードは厳しいんじゃないかな

>>232みたいなメジャーなアプリケーションは避けて
そこらへんにある50kb以下のコードをたくさん読んでみたほうがいいかもね
PHP アプリケーション名(掲示板とかアクセス解析とか)
で検索して読みやすそうなの探せばいいと思う

自分に言えるのはレッツPHPはやめたほうがいいってことぐらいだな
0234nobodyさん2012/12/01(土) 22:28:07.68ID:???
バイトで判断w
0235nobodyさん2012/12/01(土) 22:31:19.96ID:???
バイトで判断はあながち間違ってない。
コード量が多いと頭の整理が追いつかなくなるからな。
0236nobodyさん2012/12/01(土) 22:35:29.79ID:???
コメントは?
外部ライブラリは?
べた書き、モジュール化、MVCモデルの有無は?
0237nobodyさん2012/12/01(土) 22:39:39.10ID:???
そんなの実際にコード見て確かめればいいでしょう・・・
0238nobodyさん2012/12/01(土) 22:41:48.28ID:???
読むより作ったがいいよ
0239nobodyさん2012/12/01(土) 22:45:51.19ID:???
このスレ的には
使いたい関数や興味ある機能をPHPマニュアルで調べて
そこに書かれてるサンプルコードやユーザノートを参考にする

じゃないのかw

プログラムはそんなしょぼいサンプルの集まりで出来るものだし
0240nobodyさん2012/12/02(日) 00:08:42.66ID:???
質問まだぁ
0241nobodyさん2012/12/02(日) 00:20:16.82ID:???
バイトで判断w
0242nobodyさん2012/12/02(日) 00:20:52.39ID:???
>>237
それじゃバイトで判断じゃなくねw
0243nobodyさん2012/12/02(日) 00:24:21.15ID:???
共同開発してるようなもんでもない限りオナニーコメントなんて入ってないでしょう。
0244nobodyさん2012/12/02(日) 00:40:06.94ID:???
へー、コメント入ってないコードのほうが良いコードなんだw
0245nobodyさん2012/12/02(日) 00:50:02.44ID:???
>>232
ありがとうございます!
具体的に挙げていただけるととても助かります。

>>239
短いサンプルではなく、なんと言ったらいいのか…
どんな風にクラスを作るのか、使うのかを学びたいです
設計というんでしょうか? MVCフレームワークを使っていても
めんどくさい処理はモデルとは別にクラスを書きますけど
書きながら、もっとスマートに書けるんだろうなぁといつも思います
自分の書き方に自信を持てません
そういうところを学ぶには
人の書いたコードを読むのがいいのかなと思い質問した次第です

なにか勉強によさげなものがあれば是非教えて頂きたいです
具体的なものでなくても構いません
githubでこう検索すればいいとかでも助かります
よろしくお願いします
0246nobodyさん2012/12/02(日) 00:51:05.19ID:???
悩んでる暇があったら手を動かしたほうがいいと思うよ
0247nobodyさん2012/12/02(日) 00:55:16.18ID:MSbR24kc
>>246
汚いコードを量産したくないんですよね
趣味でやってるので最終的には動けばいいんですけど
やっぱり気になってしまって…
0248nobodyさん2012/12/02(日) 01:18:36.66ID:???
「何十年も修行して達人にでもなるのを待ってから戦場に出るつもりか?
気の長げェ話だな」
0249nobodyさん2012/12/02(日) 01:41:43.87ID:???
汚いコード書きたくないだけなら、フレームワーク使ってコーディング規約に従って書けばいいんじゃね
0250nobodyさん2012/12/02(日) 03:20:44.26ID:???
>>244
コメントは?っていったからそんなものその辺のプログラムには入ってないって言っただけ。
つうか煽り方が子供かよw
0251nobodyさん2012/12/02(日) 07:23:18.39ID:???
>>250
なんでその辺のプログラム限定なの?
0252nobodyさん2012/12/02(日) 07:44:28.30ID:???
流れ嫁
0253nobodyさん2012/12/02(日) 07:50:21.14ID:???
なんで嫁が出てくるの?
0254nobodyさん2012/12/02(日) 07:52:30.29ID:???
>>252
流れから判断したら>>229はその辺のプログラムで教えてほしいなんて言ってないけど
0255nobodyさん2012/12/02(日) 07:54:56.39ID:???
WordPressはそのへんのプログラムではないんですか?
だったらどのへんなんですか?
0256nobodyさん2012/12/02(日) 07:57:22.15ID:???
>>254
文盲か?
その辺のプログラムで教えてほしいとは言ってないけど教えてほしくないとも言ってない
単に人の書いたコードを読みたいと言ってる
0257nobodyさん2012/12/02(日) 07:58:41.61ID:???
どのへんなんですか?
0258nobodyさん2012/12/02(日) 07:58:45.58ID:???
>>256
うん、だから>>251で「なんでその辺のプログラム限定なの?」と聞いてるんだが
0259nobodyさん2012/12/02(日) 07:59:14.48ID:???
wordpressを出したのは有名だからであって、主眼を置くべきは他人が書いたものってとこだな。
0260nobodyさん2012/12/02(日) 08:00:59.21ID:???
>>258
だから流れ嫁よ

なにかおすすめはない?

ZendFW phpmyadmin phpbb

経験少ないなら↑のようなメジャーなものは避けてその辺のバイト数少ないのがいい

バイトで判断?コメントは?

その辺のはそもそもコメントないだろ
0261nobodyさん2012/12/02(日) 08:23:12.18ID:???
そのへんに転がってるコードの話だろ
すり替えるなハゲ
0262nobodyさん2012/12/02(日) 08:32:33.71ID:???
>>260
なるほど、君は「その辺にある50KB以下のコードが良い」という前提で「それらにはコメントがないから気にしなくて良い」と言っているけど、
俺は「その辺にある50KB以下のコードはコーディングの勉強には適さない、コメントが適当であることがその理由の一つ」という考え
0263nobodyさん2012/12/02(日) 08:45:11.04ID:???
斜め上のレスありがとう
0264nobodyさん2012/12/02(日) 08:51:17.02ID:???
斜め上から目線
0265nobodyさん2012/12/02(日) 10:55:24.45ID:???
なんでその辺のプログラム限定なの?の理由を流れから説明したら、
訳の分からない自己主張されたでござるの巻。

さすがPHPユーザーだぜwwwww
0266nobodyさん2012/12/02(日) 13:44:43.79ID:???
空気読まないで発言すると、普段Cakeしか使ってないけどソース読むならZendFWが一番。
その一番の理由は規約がしっかりしてる。
コメントをきっちり書くっていうことは規約に含まれてるからもちろんコメントも十分。
英語の言い回しの勉強にもなる。
PSR-3に完全準拠してたんじゃないかな?
0267nobodyさん2012/12/02(日) 13:48:56.05ID:???
PSR-2までだった。orz...
0268nobodyさん2012/12/02(日) 14:04:17.81ID:???
PHPの英語ってphp.iniのコメント部分のスペルミスなどのみの変更を
大量に見てきたせいかあまり好きじゃないw
0269nobodyさん2012/12/02(日) 14:16:53.92ID:???
wrapper を wraper とか、お前わざとかとw
0270nobodyさん2012/12/02(日) 14:56:15.97ID:???
リファラーの綴り知ってる?
0271nobodyさん2012/12/02(日) 15:01:01.03ID:???
ネットスケープの開発に物申したいのか
0272nobodyさん2012/12/02(日) 15:11:56.06ID:???
あぁ、物申したいな
0273nobodyさん2012/12/02(日) 15:30:35.33ID:???
巻舌ができなかったんだよ。
0274nobodyさん2012/12/02(日) 16:57:02.34ID:9ocxfrdL
ソース見てると毎回ifとかforの前に
$string = "";
みたいに宣言してる人いるけどあれなんなの
0275nobodyさん2012/12/02(日) 16:58:50.68ID:???
知らんけどループの中で追記してるんじゃ?
0276nobodyさん2012/12/02(日) 17:10:10.98ID:???
>>274
・条件の中やループの中を通るとは限らないから
・スコープの問題にあたったことある人が癖で{}使うところでそうする
・わかりやすいから
0277nobodyさん2012/12/02(日) 17:20:00.36ID:???
ほんとだ。ありがとう
追記の時は宣言しておかないとエラーになる?
PHPのマニュアルだとこんな感じだけど
$unset_str .= 'abc';
var_dump($unset_str);
PHP では変数を初期化する必要はありませんが、そのようにするのはとてもよいことです。
って書いてあるから宣言したほうがいいのかな
0278nobodyさん2012/12/02(日) 17:33:17.04ID:???
PHPだけやってるつもりなら好きにすればいいんじゃね
例えるなら標準SQLかMySQL専用の違い程度
0279nobodyさん2012/12/02(日) 17:38:11.59ID:9ocxfrdL
>>275,276,278
ありがとうございました。
ソースの可視性を上げるためにも自分も最初に変数を初期化することにします。
0280nobodyさん2012/12/02(日) 18:05:22.82ID:???
そのようにすることはとてもよいことですw

下手糞な翻訳だなあw
0281nobodyさん2012/12/02(日) 18:06:21.61ID:???
PHPの公式マニュアルって直訳みたいだよな
0282nobodyさん2012/12/02(日) 18:09:50.63ID:???
原文もそのようにかかれてるわけだが
0283nobodyさん2012/12/02(日) 18:35:23.93ID:???
原文を見て、外国語を英語に訳したような下手糞な文だよな、と思っているとでも?
0284nobodyさん2012/12/02(日) 18:42:23.47ID:???
notice出るだろ
0285nobodyさん2012/12/02(日) 18:46:52.87ID:???
出ないよ
0286nobodyさん2012/12/02(日) 18:49:30.30ID:???
>>285
もういいよそれ
0287nobodyさん2012/12/02(日) 19:11:01.01ID:???
phpのメタ言語ってどこかでやってないですかね。phpソース書き出しの為の記述言語…bakeとかoilとかの自動生成の意味合いではなくて、本番用に最適化されたグッチャグチャだけど高速に動くソース吐く、みたいな
0288nobodyさん2012/12/02(日) 19:24:19.07ID:???
>>286
いやマジで出ないからね
0289nobodyさん2012/12/02(日) 19:38:20.13ID:???
白いのがいっぱい出た
0290nobodyさん2012/12/02(日) 19:40:52.01ID:???
=だけなら出ないよ
0291nobodyさん2012/12/02(日) 19:50:55.69ID:???
>>265
その辺のプログラムで勉強ってのがそもそもだめだろ
0292nobodyさん2012/12/02(日) 20:33:55.50ID:???
拾い食いプログラマ
0293nobodyさん2012/12/02(日) 21:33:08.66ID:2RwVg9eG
>>284
HIPHOP
0294nobodyさん2012/12/02(日) 21:34:57.41ID:2RwVg9eG
安価間違えた
>>287
HIPHOP
0295nobodyさん2012/12/02(日) 21:44:01.76ID:???
すげーそんなのあるんだ
0296nobodyさん2012/12/02(日) 21:47:56.48ID:???
>>294
Facebookの!あーそういえばあったの忘れてた…ありがとう〜
どれどれ。CentOSかFedoraでのみ動きます…んー何その微妙なセレクション
0297nobodyさん2012/12/02(日) 22:00:01.62ID:???
微妙っていうより単にRHEL系だろ
0298nobodyさん2012/12/02(日) 22:00:20.38ID:FlGCwzUt
質問させてください。
BMI測定ツールを作っています。
購入した本の通りに、コードを入力したのですが、どうにも上手くいきません。
コード自体にエラーはないのですが、体重・身長を入力して実行しても、入力フォームが出るばかりです。
どなたか、原因がわかる方いませんか?

<?php
//フォームからデータが送信されたか確認
if (isset($_GET["w"]) && isset($_GET["h"])){
//データが送信されていればBMIを計算
$w = floatval($_GET["w"]);
$h = floatval($_GET["h"]);
$bmi = $w / pow($h / 100, 2);
$per = floor(($bmi / 22) * 100);
//結果を表示
echo "体重{$w}kg,身長{$h}cm<br/>";
echo "BMIは{$bmi}<br/>";
echo "肥満度は{$per}%です。";
}else {
//データが送信されていなければフォームを表示
echo "<form>";
echo "身長:<input type = 'text' name = 'h'> cm <br/>";
echo "体重:<input type = 'text' neme = 'w'> kg <br/>";
echo "<input type = 'submit' value = 'BMI判定'>";
echo "</form>";
}
?>
0299nobodyさん2012/12/02(日) 22:03:56.75ID:???
formのアクションとメソッドが抜けてる
0300nobodyさん2012/12/02(日) 22:47:15.06ID:FlGCwzUt
>>299

ご指摘の通り、直そうと思うのですが、こんな感じにすればよいでしょうか?

[修正前]
echo "<form>";
echo "身長:<input type = 'text' name = 'h'> cm <br/>";
echo "体重:<input type = 'text' neme = 'w'> kg <br/>";
echo "<input type = 'submit' value = 'BMI判定'>";
echo "</form>";

[修正後]

$self = $_SERVER["SCRIPT_NAME"];
echo "<form='$self' method='POST'>";
echo "身長:<input type = 'text' name = 'h'> cm <br/>";
echo "体重:<input type = 'text' neme = 'w'> kg <br/>";
echo "<input type = 'submit' value = 'BMI判定'>";
echo "</form>";
0301nobodyさん2012/12/02(日) 22:54:17.34ID:???
http://www.tagindex.com/html_tag/form/form_action.html
0302nobodyさん2012/12/02(日) 23:03:23.61ID:FlGCwzUt
>>301

すいません、そこを直しても動かないです…。
0303nobodyさん2012/12/02(日) 23:18:05.73ID:FlGCwzUt
ちなみに、こっちのコードなら動きます。

<?php
// フォームからデータが送信されているか?
if (isset($_GET["w"]) && isset($_GET["h"])) {
// データが送信されていればBMIを計算
$w = floatval($_GET["w"]); // 体重(kg)
$h = floatval($_GET["h"]); // 身長(cm)
$bmi = $w / pow($h / 100, 2); // BMI値を計算
$per = floor(($bmi / 22) * 100); // 肥満率を計算
// 結果を表示
echo "体重{$w}kg,身長{$h}cm<br/>";
echo "BMIは{$bmi}<br/>";
echo "肥満度は{$per}%です。";
} else {
// データが送信されてないので、フォームを表示
echo "<form>";
echo "身長:<input type='text' name='h'> cm <br/>";
echo "体重:<input type='text' name='w'> kg <br/>";
echo "<input type='submit' value='BMI判定'>";
echo "</form>";
}

>>298とどう違うのかさっぱり分からないです。
0304nobodyさん2012/12/02(日) 23:33:51.35ID:FlGCwzUt
すいません、単純なスペルミスでした。
>>298は<name>を<neme>にしているところがありました。
■ このスレッドは過去ログ倉庫に格納されています