B050 変数の参照(リファレンス)

PHPでは値の代入が行われる際に、値をそのまま渡すのではなく、参照先を渡すような仕様のことを参照渡しといいます。今回はそのような実際にに行われている代入方法について紹介します。

値の代入について

値渡し

値渡しとは値をそのまま渡すような仕様のことを指します。前の記事で紹介したように$を用いて変数を引数として使用すると値渡しとなります。

PHP
<?php
function test($change) {
    $change = "変更しました";
    print("関数内の値:$change\n");
}
// 関数の実行
$example = "あああ";
test($example);
print("関数外の値:$example\n");
?>

出力結果

PHP
関数内の値:変更しました
関数外の値:あああ

参照渡し

参照渡しとは、代入が行われる際に、値をそのまま渡すのではなく、参照先を渡すような仕様のことを指します。仮引数の先頭に `&` を付けると参照渡しとなります。

PHP
<?php
function test(&$change) {
    $change = "変更しました";
    print("関数内の値:$change\n");
}
// 関数の実行
$example = "あああ";
test($example);
print("関数外の値:$example\n");
?>

出力結果

PHP
関数内の値:変更しました
関数外の値:あああ

エンジニアからのアドバイス

参照渡しでは、値を参照しているためPC上のメモリを節約できるなどのメリットがございます。挙動についてもしっかりと理解しましょう。

---