タグ

ノウハウと参照渡しに関するwogawaraのブックマーク (2)

  • php の foreach で参照渡しをするには - Enjoi Blog

    主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。 php の foreach は基値渡しで、受け取った値を変更しても当然元の配列データは変更されない。 でも実際は参照渡しもできることを知ったので一応メモ。 以下は普通の値渡しの例。 $enjoi = array("normal", "crazy"); foreach( $enjoi as $e ) { if( $e == "crazy" ) { $e = "normal"; } } var_dump($enjoi); array(2) { [0]=> string(6) "normal" [1]=> string(6) "crazy" } でも関数の参照渡しみたいに & をつけてやると、参照渡しを使って foreach で配列を処理できる。

  • cloned.log - PHPの参照渡しは関数の引数だけじゃない

    PHPの参照渡しについて。参照渡しについて説明しているサイトでは圧倒的に関数の引数を例にしていることがほとんど。例えば以下のような感じ。 <?php $v = "default"; rewrite($v); print $v; function rewrite(&$arg) { $arg = "HelloWorld"; } これで「HelloWorld」と出力される。$vを直接変更していないのに、rewrite関数内での変更が$vに対して有効になっていると解く。関数の引数に「&」を付けなければ上書きされることはない(値渡し)。 最初はこれが一番判り易いけれど、もう一歩、変数代入の参照渡しと関数戻り値の参照渡しにも触れて欲しいところ。特に関数戻り値の参照渡しについて触れているサイトが当に少ない。 変数代入の参照渡しというのは以下のコードのような場合。 <?php $a = "default

    cloned.log - PHPの参照渡しは関数の引数だけじゃない
  • 1