ホームページ > バックエンド開発 > PHPチュートリアル > グラフィックとテキストの分析: PHP オブジェクトの代入操作は「値渡し」ですか、それとも「アドレス渡し」ですか?

グラフィックとテキストの分析: PHP オブジェクトの代入操作は「値渡し」ですか、それとも「アドレス渡し」ですか?

不言
リリース: 2023-03-24 13:52:01
オリジナル
1706 人が閲覧しました

この記事の内容は、グラフィックおよびテキスト解析における PHP オブジェクトの代入操作が「値による受け渡し」であるか、「アドレスによる受け渡し」であるのかについてです。必要な友達に共有します。参照できます


変数はデフォルトで常に値によって割り当てられることがわかっています。つまり、式の値が変数に代入される場合、元の式全体の値がターゲット変数に代入されます。これは、ある変数の値が別の変数に割り当てられている場合、一方の変数の値を変更しても、もう一方の変数には影響を与えないことを意味します。

簡単な例:

<?php 



$a = &#39;hello world&#39;;



$b = $a;



$a = &#39;bey world&#39;;







var_dump($a);



var_dump($b);



?>
ログイン後にコピー


<br/>このとき、$b = $a、メモリ内のストレージはおおよそ次のようになります: <br/>

しかし、オブジェクトがインスタンス化されると、オブジェクトは渡されるのではなく転送されます。 value には、オブジェクトのアドレスが渡されます。つまり、オブジェクト全体はコピーされません。これは、コピーすると時間がかかり、メモリを大量に消費するためです。 <br/>簡単な例も示します:

 <br/>
ログイン後にコピー
<?php
class Person
{
    public $name;
    public $age;
}
 
$a = new Person();
$b = $a;
$c = &$a;
$a->name = &#39;gavin&#39;;
$a = null;
 
var_dump($b);
var_dump($a);
var_dump($c);
ログイン後にコピー

実行結果:

object(Person)#1 (2) { ["name"]=> string(5) "gavin" ["age"]=> NULL } 

NULL 

NULL
ログイン後にコピー



上記の例の変数の操作プロセスは、大まかに次のとおりです:

$b = $a;

$c =& $a;
ログイン後にコピー



オブジェクトインスタンスを新しいオブジェクトに代入するとき変数、新しい変数 変数は同じインスタンスにアクセスします。 <br/>参照代入 (&) は、新しい変数が元の変数を参照すること、つまり、その「エイリアス」または「ポインター」になることを意味します。新しい変数を変更すると元の変数に影響し、その逆も同様です。 <br/>

$a = null;
ログイン後にコピー




おそらく、直接代入ではオブジェクトがコピーされないので、どうすればオブジェクトをコピーできるのかと疑問に思うかもしれません。 PHP でオブジェクトのクローンを作成してコピーするには、clone 演算子を使用します。 <br/>

$f = new Person();

$b = clone $f; //创建一个对象副本
ログイン後にコピー




この記事では、PHP でのオブジェクトの代入操作について説明しました。コピーされたオブジェクト。 PHP の clone 演算子を使用してオブジェクトをコピーできます。私の能力には限界がありますので、この記事に「バグ」を見つけた場合は、お気軽にアドバイスをお願いします。また、他にご質問やご意見がございましたら、ぜひ共有してお知らせください。私たちは一緒に学び、一緒にコミュニケーションし、一緒に進歩します。

関連する推奨事項:

PHP オブジェクトの複製を実装する方法


以上がグラフィックとテキストの分析: PHP オブジェクトの代入操作は「値渡し」ですか、それとも「アドレス渡し」ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート