のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,908人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - gd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    951 : nobodyさん - 2008/06/24(火) 19:59:58 ID:??? (+56,+22,-2)
    >>945
    明示的に参照にしても意味ないよ
    952 : nobodyさん - 2008/06/24(火) 20:35:11 ID:ED0kh2wU (+230,-30,-63)
    function hoge( $foo = $bar ) {
     ...
    }

    上のような感じで、関数の引数のデフォルト値に変数を指定できません。
    どうしても実現したいのですが、下のような感じにしないとダメですか(ノ_<。)

    function hoge( $foo = NULL ) {
     global $bar;
     if( is_null( $foo ) ) $foo = $bar;
     ...
    }
    953 : シャープ - 2008/06/24(火) 20:35:39 ID:22rywXeu (+13,+29,-16)
    回答ありがとうございます。
    僕は、ファイルをマッチして、ループで削除を繰り返すと考えていたのですが、そのようなことはどうすればできますか?
    955 : nobodyさん - 2008/06/24(火) 20:54:56 ID:??? (+13,+29,-17)
    >>952
    マニュアル読まない房うぜー
    http://www.php.net/manual/ja/functions.arguments.php

    あとは自力で。
    956 : 952 - 2008/06/24(火) 21:17:11 ID:??? (+92,+29,-41)
    >>955
    ご案内頂いたURLは、既読です。
    引数を、別のグローバル変数から値渡しする方法は書かれていませんでした。
    957 : nobodyさん - 2008/06/24(火) 21:19:07 ID:??? (+99,+28,-1)
    >>956
    ちゃんと読めよ
    958 : nobodyさん - 2008/06/24(火) 21:19:25 ID:??? (+50,-29,-48)
    >>956
    引数にwhileループを適用する方法も書かれてないけど、これについてはどう思いますか?
    959 : 952 - 2008/06/24(火) 21:30:05 ID:??? (+77,+29,-65)
    >>957
    ちゃんと読んでいます。
    >デフォルト値は、定数式である必要があり、 (例えば) 変数やクラスのメンバーであってはなりません。
    デフォルト値に変数をそのまま使えないということも理解しています。
    だから、>>952に自分なりの回避案を記載し、「この方向で最適でしょうか?」と質問しているのです。


    >>958
    意味が分かりません。
    961 : 952 - 2008/06/24(火) 21:43:58 ID:??? (+62,+29,-42)
    >>952に対して、まともなご返答を頂けないでしょうか?

    >>960
    参照渡しでなく、値渡しをするだけであり、
    関数外へグローバル変数への影響は一切与えませんので、
    問題はないと理解していますが、使ってはいけない理由を教えて下さい。
    963 : nobodyさん - 2008/06/24(火) 21:51:33 ID:??? (+60,+29,-53)
    >>952を見て「回避策は正しいですか」という質問には読めず
    「デフォルト引数値に変数を使う方法はありませんか」としか
    思えない俺には、まともなご返答をする資格はないな
    964 : nobodyさん - 2008/06/24(火) 21:51:45 ID:??? (+12,+29,-58)
    >>962
    相談「引数のデフォルト値にグローバル変数を値渡ししたい」
    アドバイス「グローバル変数なんて使うな」

    これはアドバイスとは言わない。
    つか、>>962みたいなのしかいないならいいや。
    自分よりレベルが下の人間の回答は役に立たない。
    965 : nobodyさん - 2008/06/24(火) 22:04:50 ID:??? (+80,-30,-96)
    >>952
    それをどうしても実現しなきゃならん理由って何なの?
    普通に組んでたらそんな事ってほぼ無いと思うんだが・・・

    define('HOGE','aiueo');

    function aaa($a = HOGE) {
     echo $a;
    }

    aaa();

    こんな感じでやったら?
    966 : nobodyさん - 2008/06/24(火) 22:08:43 ID:??? (-2,-30,-14)
    $arg = ('foo' => $bar);
    function ($arg) {
    extract($arg);
    print $foo;
    }
    967 : nobodyさん - 2008/06/24(火) 22:10:42 ID:??? (+22,+29,-39)
    >>965
    値渡ししたい変数というのは、
    配布するスクリプトでユーザーが設定するコンフィグ変数なのです。

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

    972 : nobodyさん - 2008/06/24(火) 23:14:26 ID:??? (+21,-6,-24)
    そもそもPHPを知らないユーザがイジって不安ならxmlやini形式とかの
    設定ファイルにしてパースしろよって思う
    973 : nobodyさん - 2008/06/24(火) 23:45:45 ID:??? (+70,+29,-1)
    それやっても>>952は同じ問題にぶち当たるけどね
    975 : nobodyさん - 2008/06/25(水) 00:14:41 ID:??? (+93,+24,-90)
    >>974 関数抜けた時に消えるよ、Cやら他言語やってる奴が陥る典型例
    グローバル変数は変らない

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

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

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

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

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

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

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

    しかも、セッション変数が重複することによるバグの原因(運用で発見されることもある)
    メモリーでセッションを管理している場合は、メモリーパンクでサーバーが炎上。D
    987 : nobodyさん - 2008/06/25(水) 10:18:13 ID:??? (+83,+29,-12)
    >>952
    俺ならクラスにスル
    989 : nobodyさん - 2008/06/25(水) 10:28:23 ID:??? (-1,-29,-50)
    グローバル変数とか言ってるやつ、
    どうせモバイルAdSenseだろ。
    デフォルトコードから自分でローカル変数に書き換えて作り直せよ。
    990 : nobodyさん - 2008/06/25(水) 14:52:56 ID:??? (+57,+29,-42)
    >>986
    グローバル変数にものすごく敏感な人が100人いるとして
    セッション変数にはまったく無頓着な人は何人くらい?
    991 : nobodyさん - 2008/06/25(水) 15:09:12 ID:??? (-6,-29,+0)
    32.7人くらい
    992 : nobodyさん - 2008/06/25(水) 15:26:59 ID:??? (+15,-2,-1)
    三割弱ワロス
    993 : nobodyさん - 2008/06/26(木) 14:30:34 ID:j2dBQxrb (+0,+14,-3)
    弱?
    994 : nobodyさん - 2008/06/26(木) 14:32:16 ID:??? (+19,+1,-3)
    ん?
    995 : nobodyさん - 2008/06/26(木) 15:16:39 ID:??? (-6,-29,-2)
    1/3弱
    3割強
    996 : nobodyさん - 2008/06/26(木) 15:33:03 ID:??? (+3,-29,-88)
    PHPってグローバル変数使いにくいね。
    わざわざ関数の最初でglobal 変数名なんて
    やらないといけないのだ物。
    ローカル変数は何も宣言しなくても使えるのに。

    Perlなんか逆に、何もつけなければグローバル変数。
    ローカル変数を使うときには、my 変数名ってやるんだぜ?
    997 : nobodyさん - 2008/06/26(木) 16:54:12 ID:??? (+48,+25,-12)
    中途半端な釣りだね。。。
    998 : nobodyさん - 2008/06/26(木) 17:12:40 ID:??? (+38,+20,+0)
    生め
    1000 : nobodyさん - 2008/06/26(木) 17:16:00 ID:??? (+52,+29,-13)
    おあとがよろしいようで
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - gd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について