プログラミング PHP

【PHP入門】参照渡し

本記事では、引数の渡し方(参照渡し)について紹介します。

関数の引数に値を渡す方法には「値渡し」と「参照渡し」があります。

参照渡しとは

参照渡しとは、変数のメモリ番地(メモリ上の位置)を渡す方法です。

変数のメモリ番地を渡しているため、関数内で引数の値を変更すると、呼び出し元の変数も変更されてしまいます。

参照渡しの書き方は、引数に「&」をつけます。

function test (&$a) {
・・・
}

以下が「参照渡し」のイメージ図になります。

変数の値の実体はメモリ上で管理されています。参照渡しは変数のメモリ番地を渡すので、メモリ上では実体のメモリ番地がコピーされます。
よって、呼び出し元の変数と呼び出された関数の引数は同じ実体を参照することになります。

参照渡しの使用例

<?php
 function test (&$a) {
  $a = "function内の値";
  print("関数内の値:".$a ."<br>");
 }
 // 関数の実行
 $b = "あいうえお";
 test($b);
 print("関数外の値:".$b);
?>

[実行結果]
関数内の値:function内の値
関数内の値:function内の値

参照渡しは、変数のメモリ番地を渡す方法であり、呼び出し元の変数と呼び出された関数の引数は同じ実体を参照しています。
参照している実体が同じなので、呼び出された関数の引数である「$a」の変更は、呼び出し元の変数「$b」にも反映されています。

(「$b」の値は「function内の値」に変わる)

PHP 引数の渡し方(参照渡し)について説明しました。PHPを学習されている方のお力になれれば幸いです。

学習書の紹介

Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。

「この目的を実現するためには、どの文法テクニックが適合しやすいだろう?」
「このプログラムをより読みやすくするために、どんなアプローチができるだろう?」

といったことを思考しつつ、「とりあえずは動く」だけで終わらない、現場に求められる品質を形にするための知識とテクニックを解説します。

Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。

「この目的を実現するためには、どの文法テクニックが適合しやすいだろう?」
「このプログラムをより読みやすくするために、どんなアプローチができるだろう?」

といったことを思考しつつ、「とりあえずは動く」だけで終わらない、現場に求められる品質を形にするための知識とテクニックを解説します。

-プログラミング, PHP