パスワードを忘れた? アカウント作成

T.MURACHI (15699) の日記

2005 年 01 月 16 日
午後 07:56

foreach

Perl の foreach 構文では、配列の各要素への参照が渡されるため、 foreach 構文内で値を編集すると、編集結果がそのまま配列そのものに反映されます。

$ perl -e '@arr = ("a", "b", "c"); for my $el (@arr){ $el = qq|"$el"\n| } print join "", @arr'
"a"
"b"
"c"
$

# Perl の場合、forforeach も同じ物として扱われます。

PHP の foreach 構文で同じことができるかどうか試してみました。結果は以下の通り。

$ php -r '$arr = array ("a", "b", "c"); foreach ($arr as $el) $el = "\"$el\"\n"; print join("", $arr);'
abc$

どうやら PHP の foreach 構文は値渡しのようです。をひをひ。。。 orz

# まー、この辺は賛否両論ありそうだけどなぁ。

--

Mon Jan 17 00:36:51 JST 2005 - 追記

PHP で foreach 構文をリファレンス渡しで行いたい場合は、変数名に & を付けてあげればよいみたいです。

$ php -r '$arr = array ("a", "b", "c"); foreach ($arr as &$el) $el = "\"$el\"\n"; print join("", $arr);'
"a"
"b"
"c"
$

てゆか、オンラインマニュアルにちゃんと書いてあるぢゃ~ん (((((/;^^)/

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

普通のやつらの下を行け -- バッドノウハウ専門家

処理中...