タグ

*referenceに関するoverdrive_596のブックマーク (4)

  • 関数の値渡しと参照渡しどちらが速い? - PHP Note

    C言語では、値渡しの場合は値のコピーが渡され、参照渡しの場合は値のアドレスが渡される。単純に考えて参照渡しの方が高速そうですが PHPはどうなのか? これまた確かめてみないと納得できない性格なのでやっちゃいました。 リファレンス == 実体の別名 2004-02-25: PHPの場合、C語と異なり、参照渡し・値渡しの違いは、値が変更された時に初めて起こることが、PaKa様のご指摘によりわかりました。ありがとうございました。 関数に渡した時点ではどちらも「実体」を示す「ポインタのようなもの」が渡されていて、関数内で変更された時はじめて渡した値がコピーされるという動作のようです。つまり受け取った変数を変更しなければ値渡しと参照渡しで差は無いということです。 PHP では「 参照 」と「 リファレンス 」どちらの言葉も使いますが、C語におけるポインタやアドレス渡しを指す参照とは違い、PHP の参

  • 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の参照渡しは関数の引数だけじゃない
  • PHP4,5での参照渡しについて具体的な利用方法を教えて下さい

    PHP4,5での参照渡しについて具体的な利用方法を教えて下さい。 1. function example() と function &example() は、どういう場合に使いわけるのか? 2. function example($arg) と function example(&$arg) は、どう違うのか? 3. $result = example(); と $result =& example(); の具体的な違い 値渡しは、そのまま値を渡し、参照渡しは、メモリのアドレス?を渡すという程度の理解はしております。しかし、具体的などういう意味で、どういう時に使うのかがピンと来ません。 よくわからないので、自分では値渡ししか利用していませんが、他人のコードの意味がよくわからなかったり、参照渡しのコードが変更できなかったりします。 こんな時にこれを使うという具体例でも構いません。

  • function &関数名

    PHPのソースコードで、「function &関数名」というソースコードをたまに見かけます。 これはどういう意味なのでしょうか? (関数へのポインタですか?) あと、余談なのですが、PHPでは”ポインタ”という表現を用いませんが、どのようにこの概念を表現するのでしょうか?

  • 1