ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルのさまざまなデータ型に対する = 代入演算子のさまざまな動作

PHP_PHP チュートリアルのさまざまなデータ型に対する = 代入演算子のさまざまな動作

WBOY
WBOYオリジナル
2016-07-21 15:32:52876ブラウズ

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

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

$i = 0;
$j = $i; = 0;
echo $ j; // 出力 0
$arr2 = $arr;
$arr[0];出力 0

クラス B
{
public $i = 0;

$b = new B();
$c->i = 1; >i); // 出力 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 ではこれは当てはまりません。次の例

$i = 0;
$p = &$i; は $i の値を即座に変更します。




http://www.bkjia.com/PHPjc/322714.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/322714.html
技術記事

まず、代入演算子 = の動作を説明します。 コードをコピーします。 コードは次のとおりです。 $i = 0; $j = $j = 0; $arr = 配列(0 ); $arr2 = $arr2[0...

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