T.MURACHIの日記: 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 の場合、for も foreach も同じ物として扱われます。
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"
$
てゆか、オンラインマニュアルにちゃんと書いてあるぢゃ~ん (((((/;^^)/ 。
foreach More ログイン