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

【PHP】下らねぇ質問はここに書き込みやがれ 69

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2008/05/27(火) 18:04:33ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0967nobodyさん2008/06/24(火) 22:10:42ID:???
>>965
値渡ししたい変数というのは、
配布するスクリプトでユーザーが設定するコンフィグ変数なのです。

ですので、>>965氏のおっしゃるように、
実際は定数として扱うのが正しいのですが、
定数の書き方にしてしまうと、
PHPを知らない対象ユーザーが、間違えた書き方をしてしまう可能性が出てくるのです。
0968nobodyさん2008/06/24(火) 22:21:46ID:???
function hoge($foo = NULL) {
 if (is_null( $foo)) $foo = $GLOBALS['bar'];
 ...
}
0969nobodyさん2008/06/24(火) 22:31:02ID:???
>>968
>>952で自分なりの回避策として考えていましたが、
やはり、それが最適ですかね?
0970nobodyさん2008/06/24(火) 22:58:15ID:???
ポカーン
0971nobodyさん2008/06/24(火) 23:06:25ID:???
>>967
きっちり注意書き書いておけば大丈夫だと思うがな・・
でなければ設定自体がまともにできんだろ・・・

0972nobodyさん2008/06/24(火) 23:14:26ID:???
そもそもPHPを知らないユーザがイジって不安ならxmlやini形式とかの
設定ファイルにしてパースしろよって思う
0973nobodyさん2008/06/24(火) 23:45:45ID:???
それやっても>>952は同じ問題にぶち当たるけどね
0974nobodyさん2008/06/24(火) 23:50:37ID:???
>>952が書いたことやりたいなら

function hoge(&$bar){
}

とかで参照渡しでいいじゃないの。
0975nobodyさん2008/06/25(水) 00:14:41ID:???
>>974 関数抜けた時に消えるよ、Cやら他言語やってる奴が陥る典型例
グローバル変数は変らない

ユーザの書き換えミスを心配するなら値チェックするフォームが妥当だと思う
is_null使う所なのか? とか全体的に違和感の有る書き方だけど
0976nobodyさん2008/06/25(水) 00:34:40ID:???
>>975
あぁ、そうだったんだ。参照渡しとかあんまりやらないから知らなかった。

ユーザ情報がなんたらとかバリデーションかますとかだったら、クラスでやったほうがいいんでないの。
とか、そういう方向性は。
0977nobodyさん2008/06/25(水) 00:40:05ID:???
>>976 俺もやらかした、気にすんなw

グローバル関数に関してはこういうもんだから、別個にVBでも何でも良いから
ファイル書きかえる実行ファイル用意して設定を入れたphpファイル作らせて
からアップロードなりさせたら良いんじゃないの。

気になることがユーザの間違いなら対処方法としてはそれで良いんじゃねのかと
コードから自己顕示欲が漂う
0978nobodyさん2008/06/25(水) 03:15:16ID:???
まぁ普通は952みたいなことはしない。
そうせざるを得ないなら設計が悪い。
それでも自分のコードを押し通したいなら、別に悪コードではないから自己責任で。
0979nobodyさん2008/06/25(水) 03:17:46ID:???
うん、>>952はglobal引くなら、せめて変数名全部大文字にするとか、なんか分かりやすくすればいいと思うよ。
0980nobodyさん2008/06/25(水) 03:45:25ID:???
俺の一番嫌いな変数global変数
これってメモリ余計に食うしバグの原因になりやすい変数でしょ
大嫌い
0981nobodyさん2008/06/25(水) 03:56:34ID:???
>>952はどうしてもそんなコード書かなきゃいけないか考え直した方がいい
0982nobodyさん2008/06/25(水) 04:03:18ID:???
>>964
>相談「引数のデフォルト値にグローバル変数を値渡ししたい」
>アドバイス「グローバル変数なんて使うな」
>
>これはアドバイスとは言わない。
>つか、>>962みたいなのしかいないならいいや。
>自分よりレベルが下の人間の回答は役に立たない。

なんだこりゃ・・・親切もいいところだろ。
0983nobodyさん2008/06/25(水) 04:12:22ID:???
昔はperlもPHPもglobal変数ばっかりだったよ
でも今は、なるべくローカル変数を使う傾向になってるよ

global変数はセキュリティ的にもバグ的にもチームで分担作業するにしても
あまりよくない変数です
0984nobodyさん2008/06/25(水) 04:17:02ID:???
>>952
こんな関数つくらないといけなくなるような設計が
そもそもおかしいというかw
なんでそんな関数必要になるの?マジ不思議
0985nobodyさん2008/06/25(水) 05:21:37ID:???
複数人でやってるプロジェクトなら誰かが止めそうな気はするなw
0986nobodyさん2008/06/25(水) 07:59:25ID:uulTChwW
俺が感じるのは、グローバル変数にものすごく敏感な人たちが、
セッション変数には、まったく無頓着であるということ。

セッション変数もグローバル変数と同等。
セッション変数に、あちらこちらのクラスでたくさんデータを詰め込んでいる
システムをあちらこちらでみる。

しかも、セッション変数が重複することによるバグの原因(運用で発見されることもある)
メモリーでセッションを管理している場合は、メモリーパンクでサーバーが炎上。D
0987nobodyさん2008/06/25(水) 10:18:13ID:???
>>952
俺ならクラスにスル
0988nobodyさん2008/06/25(水) 10:22:36ID:???
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/

次スレ
0989nobodyさん2008/06/25(水) 10:28:23ID:???
グローバル変数とか言ってるやつ、
どうせモバイルAdSenseだろ。
デフォルトコードから自分でローカル変数に書き換えて作り直せよ。
0990nobodyさん2008/06/25(水) 14:52:56ID:???
>>986
グローバル変数にものすごく敏感な人が100人いるとして
セッション変数にはまったく無頓着な人は何人くらい?
0991nobodyさん2008/06/25(水) 15:09:12ID:???
32.7人くらい
0992nobodyさん2008/06/25(水) 15:26:59ID:???
三割弱ワロス
0993nobodyさん2008/06/26(木) 14:30:34ID:j2dBQxrb
弱?
0994nobodyさん2008/06/26(木) 14:32:16ID:???
ん?
0995nobodyさん2008/06/26(木) 15:16:39ID:???
1/3弱
3割強
0996nobodyさん2008/06/26(木) 15:33:03ID:???
PHPってグローバル変数使いにくいね。
わざわざ関数の最初でglobal 変数名なんて
やらないといけないのだ物。
ローカル変数は何も宣言しなくても使えるのに。

Perlなんか逆に、何もつけなければグローバル変数。
ローカル変数を使うときには、my 変数名ってやるんだぜ?
0997nobodyさん2008/06/26(木) 16:54:12ID:???
中途半端な釣りだね。。。
0998nobodyさん2008/06/26(木) 17:12:40ID:???
生め
0999nobodyさん2008/06/26(木) 17:14:57ID:???
次スレ

【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/
1000nobodyさん2008/06/26(木) 17:16:00ID:???
おあとがよろしいようで
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。