【 PHP 】PHP8に入門してみた 64日目 PHPの基本 ( 演算子 2種類の代入? )
PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。
演算子
代入される「モノ」は大きく分けて2種類
まず覚えておきたいのは変数
とは、コンピュータの一時的な記憶領域である「メモリ」のアドレスに対して付与された名前であるということです。
このアドレスは「値」と紐づき、記憶機能として仕事をしているのです。
これを踏まえたうえで・・・。
代入には「値の代入」と「参照の代入」があります。
値の代入
値の代入
は、変数が指し示すアドレスの「値」に=
の右オペランドの値を左オペランドの値にコピーすることを言います。
右オペランドはリテラル(1とか"a"とか)以外に変数であっても構いません。
例えば$a = $b
としても&b
の値が消えてなくなるわけではなく、「値の代入」が行われます。
つまり$b
の値が$a
にコピーされます。
$b
の値を別の値に変更しても$a
には何の影響もありません。
現時点では「何を言っているの???」と思うかもしれませんがこのことは結構重要です。
参照の代入
参照の代入
は、=
の右オペランドの「アドレス」を左オペランドの「アドレス」にコピーします。
PHP
では左オペランドの直前に&
を付けることで参照の代入となります。
$a = &$b
といった感じです。
参照代入の特徴は、「代入元と同じアドレスの値を参照している」ということでしょう。
簡単に言うと上記例では$b = 3
とした場合、$a
の値は$b
と同じ3になるということです。
メモ
オブジェクト型
についてはデフォルトで参照の代入
になります。
それ以外の場合で参照の代入
をしたい場合は&
を変数の直前につけて代入する必要があります。
オブジェクト型
で値の代入
をしたい場合はcloneという関数を使います。
ディスカッション
コメント一覧
まだ、コメントがありません