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

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

php覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - gd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitter

951 = :

>>945
明示的に参照にしても意味ないよ

952 :

function hoge( $foo = $bar ) {
 ...
}

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

function hoge( $foo = NULL ) {
 global $bar;
 if( is_null( $foo ) ) $foo = $bar;
 ...
}

953 = 944 :

回答ありがとうございます。
僕は、ファイルをマッチして、ループで削除を繰り返すと考えていたのですが、そのようなことはどうすればできますか?

954 = :

>>953
後出しうぜー
http://www.php.net/manual/ja/function.opendir.php
http://www.php.net/manual/ja/control-structures.while.php
http://www.php.net/manual/ja/function.preg-match.php
http://www.php.net/manual/ja/function.unlink.php

あとは自力で。

955 = :

>>952
マニュアル読まない房うぜー
http://www.php.net/manual/ja/functions.arguments.php

あとは自力で。

956 = :

>>955
ご案内頂いたURLは、既読です。
引数を、別のグローバル変数から値渡しする方法は書かれていませんでした。

957 = :

>>956
ちゃんと読めよ

958 = :

>>956
引数にwhileループを適用する方法も書かれてないけど、これについてはどう思いますか?

959 = :

>>957
ちゃんと読んでいます。
>デフォルト値は、定数式である必要があり、 (例えば) 変数やクラスのメンバーであってはなりません。
デフォルト値に変数をそのまま使えないということも理解しています。
だから、>>952に自分なりの回避案を記載し、「この方向で最適でしょうか?」と質問しているのです。


>>958
意味が分かりません。

961 = :

>>952に対して、まともなご返答を頂けないでしょうか?

>>960
参照渡しでなく、値渡しをするだけであり、
関数外へグローバル変数への影響は一切与えませんので、
問題はないと理解していますが、使ってはいけない理由を教えて下さい。

963 = :

>>952を見て「回避策は正しいですか」という質問には読めず
「デフォルト引数値に変数を使う方法はありませんか」としか
思えない俺には、まともなご返答をする資格はないな

964 = :

>>962
相談「引数のデフォルト値にグローバル変数を値渡ししたい」
アドバイス「グローバル変数なんて使うな」

これはアドバイスとは言わない。
つか、>>962みたいなのしかいないならいいや。
自分よりレベルが下の人間の回答は役に立たない。

965 = :

>>952
それをどうしても実現しなきゃならん理由って何なの?
普通に組んでたらそんな事ってほぼ無いと思うんだが・・・

define('HOGE','aiueo');

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

aaa();

こんな感じでやったら?

967 = :

>>965
値渡ししたい変数というのは、
配布するスクリプトでユーザーが設定するコンフィグ変数なのです。

ですので、>>965氏のおっしゃるように、
実際は定数として扱うのが正しいのですが、
定数の書き方にしてしまうと、
PHPを知らない対象ユーザーが、間違えた書き方をしてしまう可能性が出てくるのです。

968 = :

function hoge($foo = NULL) {
 if (is_null( $foo)) $foo = $GLOBALS['bar'];
 ...
}

969 = :

>>968
>>952で自分なりの回避策として考えていましたが、
やはり、それが最適ですかね?

970 = :

ポカーン

971 = :

>>967
きっちり注意書き書いておけば大丈夫だと思うがな・・
でなければ設定自体がまともにできんだろ・・・

972 = :

そもそもPHPを知らないユーザがイジって不安ならxmlやini形式とかの
設定ファイルにしてパースしろよって思う

973 = :

それやっても>>952は同じ問題にぶち当たるけどね

975 = :

>>974 関数抜けた時に消えるよ、Cやら他言語やってる奴が陥る典型例
グローバル変数は変らない

ユーザの書き換えミスを心配するなら値チェックするフォームが妥当だと思う
is_null使う所なのか? とか全体的に違和感の有る書き方だけど

976 = :

>>975
あぁ、そうだったんだ。参照渡しとかあんまりやらないから知らなかった。

ユーザ情報がなんたらとかバリデーションかますとかだったら、クラスでやったほうがいいんでないの。
とか、そういう方向性は。

977 = :

>>976 俺もやらかした、気にすんなw

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

気になることがユーザの間違いなら対処方法としてはそれで良いんじゃねのかと
コードから自己顕示欲が漂う

978 = :

まぁ普通は952みたいなことはしない。
そうせざるを得ないなら設計が悪い。
それでも自分のコードを押し通したいなら、別に悪コードではないから自己責任で。

979 = :

うん、>>952はglobal引くなら、せめて変数名全部大文字にするとか、なんか分かりやすくすればいいと思うよ。

980 = :

俺の一番嫌いな変数global変数
これってメモリ余計に食うしバグの原因になりやすい変数でしょ
大嫌い

981 = :

>>952はどうしてもそんなコード書かなきゃいけないか考え直した方がいい

982 = :

>>964
>相談「引数のデフォルト値にグローバル変数を値渡ししたい」
>アドバイス「グローバル変数なんて使うな」
>
>これはアドバイスとは言わない。
>つか、>>962みたいなのしかいないならいいや。
>自分よりレベルが下の人間の回答は役に立たない。

なんだこりゃ・・・親切もいいところだろ。

983 = :

昔はperlもPHPもglobal変数ばっかりだったよ
でも今は、なるべくローカル変数を使う傾向になってるよ

global変数はセキュリティ的にもバグ的にもチームで分担作業するにしても
あまりよくない変数です

984 = :

>>952
こんな関数つくらないといけなくなるような設計が
そもそもおかしいというかw
なんでそんな関数必要になるの?マジ不思議

985 = :

複数人でやってるプロジェクトなら誰かが止めそうな気はするなw

987 = :

>>952
俺ならクラスにスル

990 = :

>>986
グローバル変数にものすごく敏感な人が100人いるとして
セッション変数にはまったく無頓着な人は何人くらい?

992 = :

三割弱ワロス

994 = :

ん?

996 = :

PHPってグローバル変数使いにくいね。
わざわざ関数の最初でglobal 変数名なんて
やらないといけないのだ物。
ローカル変数は何も宣言しなくても使えるのに。

Perlなんか逆に、何もつけなければグローバル変数。
ローカル変数を使うときには、my 変数名ってやるんだぜ?

997 = :

中途半端な釣りだね。。。

998 = :

生め

1000 = :

おあとがよろしいようで


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - gd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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