ホームページ  >  記事  >  バックエンド開発  >  PHP のデータ型 = 代入演算子は、データ型ごとに動作が異なります。

PHP のデータ型 = 代入演算子は、データ型ごとに動作が異なります。

WBOY
WBOYオリジナル
2016-07-29 08:44:111191ブラウズ

まず代入演算子 = の動作を説明します。次の例を見てください:

コードをコピーします コードは次のとおりです:


$i = 0;
$j = 0; ;
echo $ j; //出力 0 を出力します
$arr2 = $arr; //出力 0 を出力します
クラス B
{
public $i = 0;
$b = new B()
$c->i = 1; // 出力 1


この例から、= 演算子の右側の変数が基本データ型または配列の場合、= 演算子は右側の変数のコピーを左側の変数; 右側の変数がクラスなどの基本的なデータ型または配列でない場合、 = は右側の変数への参照を左側の変数に割り当てます。注: これは、右側の変数が指すコンテンツ領域ではなく、右側の変数への参照です。詳細については、以下の例を参照してください



コードをコピーします

コードは次のとおりです:

$a = new A(); $b_r = &$a; var_dump($a); $a が指す内容はまだ存在します$b_r = null; var_dump($a); // null を出力すると、$a が指す内容はクリアされます


$var = を使用すると、 &$a に値を割り当てるには、$var= を使用します。null を使用して変数 $var を破棄すると、実際には、$var が指す内容が null に設定されます。コンテンツ領域を使用して、コンテンツ領域のコンテンツを破棄できます。したがって、変数 $var を破棄するには、unset($var) を使用します。 PS: 実際、この方法で $var を割り当てることは単なる参照であり、破棄されるかどうかは関係ありません。これは、設定を解除することで破棄する必要があることを意味します。
以下は「ユーザーマニュアル」の「引用の説明」の例です:
$a =& $b;
以下の説明があります:
これは、$a と $b が同じ変数を指すことを意味します。
注: ここで $a と $b はまったく同じです。$a が $b を指しているわけではなく、$a と $b が同じ場所を指しているということです。
引用とは何ですか?



コードをコピーします

コードは次のとおりです:


PHP でのクォートとは、同じ変数の内容に異なる名前でアクセスすることを意味します。これは C ポインターとは異なり、参照はシンボル テーブルのエイリアスです。 PHP では変数名と変数の内容が異なるため、同じ内容でも異なる名前が付けられることに注意してください。最も近い類似点は、Unix のファイル名とファイル自体です。変数名はディレクトリ エントリであり、変数の内容はファイル自体です。参照は、Unix ファイル システムにおける緊密な接続と考えることができます。

「参照とは何か」について少し説明します: int i = 0; int j = 0; int *p = &i;

p = &j; i はアドレスのポインタ、*p は内容です。p=&j は p のポインタを変更することを示し、*p=111 の式は i の内容を変更します。 PHP ではこれは当てはまりません。次の例では、

$p = &$i;
$p = 111 が $i の値を変更します。

上記では、データ型の内容も含め、PHP のさまざまなデータ型に対する data type = 代入演算子のさまざまな動作を紹介しています。PHP チュートリアルに興味のある友人にとって役立つことを願っています。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。