LoginSignup
0
0

参照渡しと値渡し

Last updated at Posted at 2024-04-01

はじめに

参照渡しの理解が曖昧だったため、値渡しと比較しながら整理する。

参照渡しと値渡しの違い

二つの違いの前に・・・

そもそも変数とは

値の格納先に対して付けられた値札のようなもの

値を格納するのはメモリの役割。しかし、コードに意味のない番号を記述するのは見た目的にわかりにくいし、タイプミスの原因にもなる。
そこで、人間がわかりやすいように名前をつけるようにした。それが変数。

値による代入

値による代入とは、メモリ上の値を別のアドレスにコピーすること。
代入した変数と代入された変数は別物なため、元の変数が変更されても、代入された変数が影響を受けることはない。

ref_val.php
<?php
$x = 1;
$y = $x;
$x = 5;
print $y  //1

参照による代入

参照による代入とは、メモリ上のアドレスそのものを引き渡す代入のこと。
元の変数と代入された側の変数が同じ値を見ていて、元の変数に対して加えた変更は代入された側の変数にも及ぶ。

ref_val.php
<?php
$x = 1;
$y = &$x;
$x = 5;
print $y  //5
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0