dポイントプレゼントキャンペーン実施中!

式1 =& 式2
という式の文法している人いませんか。

A 回答 (3件)

> 解答ありがとうございます。


> $b =& $a;
> のあと
> $a = 5;
> とした場合
> $bはどうなるのでしょうか。

その場合、$bも5になります。

$b =& $a;
という代入をした時点で、
$aと$bは、「同じ変数に違う名前が付いてる」という状態になります。
ですから、その後は、
「$b=2;」は、変数「$a 兼 $b」への値「2」の代入
「$a=5;」は、変数「$a 兼 $b」への値「5」の代入
という操作になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2010/01/01 04:09

参照による代入です。


http://www.php.net/manual/ja/language.operators. …

---
$a = 1;
$b = $a;
$b = 2;
echo "a=$a, b=$b";
---
とした場合、aは1のままですが、
---
$a = 1;
$b =& $a;
$b = 2;
echo "a=$a, b=$b";
---
とすると、aも2になります。

オブジェクトを使っていて、
コピーされたくない(元のオブジェクトに対して操作したい)とか、
無駄なコピーを防ぎたい場合によく使用します。

この回答への補足

解答ありがとうございます。
$b =& $a;
のあと
$a = 5;
とした場合
$bはどうなるのでしょうか。

補足日時:2009/12/31 17:54
    • good
    • 0

普通に=で式2を渡した場合は、単純に値がコピーされます。


=&で式2を渡した場合は、それは参照渡しというものになります。

これを行うと

<?php
$a = 1;

$b =& $a; //このように値を代入した後、

$b = 2; //$bに2を代入すると、

echo $a; //$a = 2になります。簡単に言えば値が共有されるようなイメージです。

?>

詳しい説明は、「参照渡し PHP」などで検索して見てください。
上記をGoogleで検索した一番最初に出てきたサイトは、
http://nyx.pu1.net/reference/variable/reference_ …
こちらです。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2010/01/01 04:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!