【PHP】下らねぇ質問はID出して書き込みやがれ 98
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/09/18(土) 19:20:37ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 97
http://hibari.2ch.net/test/read.cgi/php/1279833891/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0542nobodyさん
2010/09/30(木) 20:16:32ID:???0543nobodyさん
2010/09/30(木) 20:30:29ID:???捨ててしまえ
0544nobodyさん
2010/09/30(木) 20:31:59ID:???0545nobodyさん
2010/09/30(木) 21:16:21ID:xlyY++2Iあぁ おいらのコードは見られると穴だらけだなw
0547nobodyさん
2010/10/01(金) 00:55:26ID:???0548nobodyさん
2010/10/01(金) 01:22:52ID:???0549nobodyさん
2010/10/01(金) 01:23:42ID:???・ショートタグ
・文字コードがShift-JIS
・extract
・タグを閉じたり開いたり忙しい
・echo "{$var}";
・ファイルの先頭・要所にコメントがない、
あってもコード見たら分かる事しか書いてない(仕様を書かないと意味がない)
・1行がやたらと長い
・$_GETとか$_POST配列扱う時にisset使わず分岐したりしてる(警告出るちゅーねん!)
…書き出したらきりがないのでこのあたりにしておく
0551nobodyさん
2010/10/01(金) 01:44:11ID:???0552nobodyさん
2010/10/01(金) 01:48:55ID:???基本的に、関数(もしくは言語構造)の本来の意味を考えて使い分けてる、
”あるかどうか”を調べたいのならisset
”無いかどうか”を調べたいのならempty
$_GETとかで使うのはほぼ前者
0553nobodyさん
2010/10/01(金) 01:53:57ID:???isset($_GET['name'], $_GET['email'], $_GET['body']);のように複数渡せるからというのもある
0554nobodyさん
2010/10/01(金) 01:54:18ID:JW8iU96Hこれって
$hoge = $_GET['hoge'];
がだめっていってるんだよね?
$hoge = null;
if (isset($_GET['hoge'])) {
$hoge = $_GET['hoge'];
}
にしろってことだよね?
もしいっぱいあった場合ってすべての$_GET $_POSTに対してこの処理をするの?
10個ぐらいあるとだいぶ間抜けに見えそうなんだけど
なんかいい記述方法あるかな?
0555nobodyさん
2010/10/01(金) 01:56:53ID:???判断基準が全然違うので目的にあったものを使う
どちらも未定儀の変数に対する挙動は null の場合と同じ
is_null()
> var が null の場合に TRUE、 それ以外の場合に FALSE を返します。
empty()
> varが空でないか、0でない値であれば FALSE を返します。
>
> 次のような値は空であると考えられます。:
>
> * "" (空文字列)
> * 0 (0 は整数)
> * "0" (0は文字列)
> * NULL
> * FALSE
> * array() (空の配列)
> * var $var;(変数が宣言されているが、クラスの中で値が設定されていない)
0557nobodyさん
2010/10/01(金) 02:06:44ID:JW8iU96Hあとでよくマヌアルみてみる
ありがとう
0558nobodyさん
2010/10/01(金) 07:01:53ID:???0559nobodyさん
2010/10/01(金) 10:06:47ID:Jbi45SFJ$bar = preg_replace("/あ/","い",$bar);
}
$a = "あいうえお";
foo($a);
echo $a;
と書いたんですが、
あいうえお
と出力されてしまいます。
いいうえおに変換されるようにするにはどこが間違ってますでしょうか
0562nobodyさん
2010/10/01(金) 10:19:36ID:???+ function foo(&$bar){
0564nobodyさん
2010/10/01(金) 10:22:30ID:???0565nobodyさん
2010/10/01(金) 10:28:19ID:???preg_replace("/あ/u","い",$bar);
ってしないとうまく動かないかも。
0567nobodyさん
2010/10/01(金) 11:33:39ID:???0568nobodyさん
2010/10/01(金) 11:35:37ID:???0569nobodyさん
2010/10/01(金) 11:35:40ID:???0570nobodyさん
2010/10/01(金) 11:43:12ID:???return 'いいうえお';
}
$a = 'あいうえお';
echo foo($a);
0571nobodyさん
2010/10/01(金) 14:30:05ID:???0572nobodyさん
2010/10/01(金) 14:39:42ID:???0574nobodyさん
2010/10/01(金) 15:01:22ID:???その程度の認識だからPHPがゴミ扱いされるんだよ
0575nobodyさん
2010/10/01(金) 15:07:51ID:???そうじゃなくて、>>549-554の言うようにisset等でチェックする意味あるの?
$var=$_GET["var"] 等とした後に$varの内容を目的に応じてチェックするんじゃ
だめなの?
0576nobodyさん
2010/10/01(金) 15:26:09ID:???0577nobodyさん
2010/10/01(金) 15:36:01ID:???チェックしないと警告でるじゃん
てか、あらゆる入力(入力なしの場合も含む)を想定して
プログラムしないと、後々バグのすくつになる
0578nobodyさん
2010/10/01(金) 16:02:36ID:???error_reporting(E_ALL | E_STRICT);
を設定して、あらゆる操作で一切の警告が出ないことが前提条件
0579nobodyさん
2010/10/01(金) 16:12:42ID:???$_GET["var"]が存在しないとき、
$var=$_GET["var"]
とすると警告出る?記憶にないんだが。
0580nobodyさん
2010/10/01(金) 16:13:50ID:???設定次第
0581nobodyさん
2010/10/01(金) 16:16:28ID:???その場合代入できるわけないでしょ
0583nobodyさん
2010/10/01(金) 16:30:59ID:???E_ALLはphp4にもある
それに$var=$_GET["var"]これでエラーが出る設定は
E_NOTICEを出力する場合だからE_ALLだけで十分
5.3とか関係ないな
0584nobodyさん
2010/10/01(金) 16:39:55ID:???これって、つまり$_GET["var"]が存在しないのに評価しようとしてWarningが出るってこと?
配列だからエラーになるの?
$var=$a($aは未定義)の場合もエラーになるの?
0585nobodyさん
2010/10/01(金) 16:48:29ID:???0586nobodyさん
2010/10/01(金) 17:56:49ID:???先頭に
error_reporting(E_ALL);
つけてやればわかるだろ
まぁ予想通りの結果>>585になるが
0588nobodyさん
2010/10/01(金) 18:10:31ID:???0589nobodyさん
2010/10/01(金) 18:28:01ID:???0590nobodyさん
2010/10/01(金) 19:04:14ID:/wsXjKAq0593nobodyさん
2010/10/01(金) 19:44:38ID:???0594nobodyさん
2010/10/01(金) 19:48:17ID:???釣りとしか思えない
0598nobodyさん
2010/10/01(金) 20:17:46ID:???>>593は単純なprintもwhileで10回まわして表示するタイプ
0600nobodyさん
2010/10/01(金) 21:19:30ID:???>>599
スレに張り付きすぎ少しゆとりを持て
0601nobodyさん
2010/10/01(金) 21:21:30ID:???ってどんだけ単純な頭なんだよ
0602nobodyさん
2010/10/01(金) 21:55:01ID:???プロジェクトリーダーの理解 : Unicode修飾子が怪しくね?
アナリストのデザイン : 正規表現使うなカス
プログラマのコード : function foo($bar) { return 'いいうえお'; }
得られたサポート : 過去ログ10回読め
顧客が本当に必要だったもの : 参照渡し
0603nobodyさん
2010/10/01(金) 22:01:40ID:???0605nobodyさん
2010/10/01(金) 23:17:39ID:???スレ相応しいくだらないくだりを必死で考えたことは褒めてやろう
0606nobodyさん
2010/10/02(土) 00:20:26ID:2C+2SXQ6もうしばらくメンテナンスがされておりません。
それを使ってみたのですが、いくつか動かない個所を見つけました。
apacheのエラーログにエラーが残ってないので、スクリプトのエラー
はなくバグで動いていないかと思うのですが、こういったものの一般的な
デバッグはどのように行うのでしょうか?
PHPはほぼ初めてで、でバッギングツールがあるのかどうなのかもわかっていません。
0607nobodyさん
2010/10/02(土) 00:34:52ID:???0608nobodyさん
2010/10/02(土) 00:49:00ID:???デバッグはxdebugを使う
開発環境と連携するには
http://www.vkazoo.com/?p=260
0609nobodyさん
2010/10/02(土) 03:18:46ID:???設定次第でどこにでもエラーログを作れるので
必ずしもapacheのログにある訳ではない
あとそのオープンソースのって何?有名所のなら
ちゃんとコミュニティとかはあると思うけど・・・
>>608
別にxdebugじゃなくても良いけどな
デバッガなんて開発環境に合わせて選べば良いんじゃない?
0610nobodyさん
2010/10/02(土) 06:50:18ID:???ソース読めるならおかしいと思う辺りにデバッグ用のprint文とかを
入れてみるのが早い。
あぁ、PHP初めてでしたか
0611nobodyさん
2010/10/02(土) 11:36:38ID:???0612nobodyさん
2010/10/02(土) 11:45:41ID:???0613nobodyさん
2010/10/02(土) 11:57:15ID:???printはprint_rの書き間違いだと思うけど
0614nobodyさん
2010/10/02(土) 12:10:07ID:???0615nobodyさん
2010/10/02(土) 12:13:19ID:???たいていはprint_rでやってるけど
ログに書き込むときに便利だし
0616nobodyさん
2010/10/02(土) 12:42:53ID:???echo '<pre>';
var_dump($var);
echo '</pre>';
}
0617nobodyさん
2010/10/02(土) 13:36:21ID:???0618nobodyさん
2010/10/02(土) 14:34:56ID:???鯖で動かしていると無理だな
0619nobodyさん
2010/10/02(土) 14:59:48ID:???0620nobodyさん
2010/10/02(土) 16:05:29ID:???0621nobodyさん
2010/10/02(土) 17:36:19ID:???var_dumpかvar_exportで2番目の引数をtrueにする
0622nobodyさん
2010/10/02(土) 17:40:42ID:???某大手家電メーカの情報部はみんなprint_r使ってるぞ。
(みんなっちゅうか教育でそう教えられるのかも知れんが
何かあるごとにprint_rみせて print_rみせて って聞こえるし
「すみません。ココが動かないんですけど」って新人の問いに print_r使えばいい
って言ってる。
ちなみに今そこの会社の人間に
「PHPのバグではまった」ってメール送ったら
「print_rで見ればいい 」 っていわれた。
0623nobodyさん
2010/10/02(土) 18:00:31ID:???>「PHPのバグではまった」ってメール送ったら
矛盾してないか?
0624nobodyさん
2010/10/02(土) 18:12:17ID:???エラー文字列をDBに保存して見てるわ
0627nobodyさん
2010/10/02(土) 18:35:41ID:l4wTIWl0空白のある文字列をそのまま渡したいんですが、GETだと空白の所で途切れてしまうんです。
どうやればいいんでしょうか?
0629627
2010/10/02(土) 18:55:08ID:l4wTIWl00630nobodyさん
2010/10/02(土) 19:11:10ID:???次は人が書いたコードのデバッグにチャレンジしてみようと思っています。
PHPってCの用に頭から読んでいくのが一般的なのでしょうか?
0631nobodyさん
2010/10/02(土) 19:41:48ID:???0632nobodyさん
2010/10/02(土) 20:07:54ID:???何カ月かかるんだよ
0633nobodyさん
2010/10/02(土) 20:15:19ID:???0634nobodyさん
2010/10/02(土) 20:17:02ID:???0635nobodyさん
2010/10/02(土) 20:25:46ID:???Cはmainから動くことが決まってるけど、PHPなんてどこから呼び出されるかわからん
0636nobodyさん
2010/10/02(土) 20:39:32ID:???0637nobodyさん
2010/10/02(土) 20:53:14ID:???0638nobodyさん
2010/10/02(土) 21:48:54ID:???0639nobodyさん
2010/10/02(土) 22:03:17ID:???0641nobodyさん
2010/10/02(土) 22:21:36ID:???エントリポイントとなってるスクリプトの<?phpが先頭だろ
そこからおってけばどーとでもなる
■ このスレッドは過去ログ倉庫に格納されています