6

私の同僚の 1 人が、次のような投稿をしました。

PHP では、同じ値を参照する 2 つの変数がある場合、それらは同じインスタンスです。

$a="Mary";
$b="Mary";
$c="lamb"

彼は、$a と $b が同じインスタンス (メモリ空間) を参照していることを暗示しています。私はこれを信じるのに苦労しています。これはJavaではある程度当てはまることは知っていますが、phpではそうではないと思います.phpでは文字列は原則として実際には不変ではないため、1つのインスタンスを持つことは意味がありません

さらに、それを行うunset($a)と、実際の値ではなく $a の参照のみが削除されると彼は言いました。これはもちろん真実ですが、何も証明していません

次のコードも試して、$a と $b の両方を出力しました。同じインスタンスを共有している場合、$b の値も変更されます。

$a[2]=3;
echo "<br/>\$a: $a<br/>"; //He3lo
echo "<br/>\$b: $b<br/>";//Hello

変数のメモリ空間をチェックしたいのですが、php ではそれができないと思います。これが本当かどうか誰かが明らかにできますか

4

1 に答える 1