本記事では、引数の渡し方(参照渡し)について紹介します。
関数の引数に値を渡す方法には「値渡し」と「参照渡し」があります。
参照渡しとは
参照渡しとは、変数のメモリ番地(メモリ上の位置)を渡す方法です。
変数のメモリ番地を渡しているため、関数内で引数の値を変更すると、呼び出し元の変数も変更されてしまいます。
参照渡しの書き方は、引数に「&」をつけます。
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を学習されている方のお力になれれば幸いです。
学習書の紹介
PHP本格入門[上] 〜プログラミングとオブジェクト指向の基礎からデータベース連携まで [ 大家正登 ] 価格:3,938円 |
Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。
「この目的を実現するためには、どの文法テクニックが適合しやすいだろう?」
「このプログラムをより読みやすくするために、どんなアプローチができるだろう?」
といったことを思考しつつ、「とりあえずは動く」だけで終わらない、現場に求められる品質を形にするための知識とテクニックを解説します。
PHP本格入門[下] 〜オブジェクト指向設計、セキュリティ、現場で使える実践ノウハウまで [ 大家正登 ] 価格:3,938円 |
Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。
「この目的を実現するためには、どの文法テクニックが適合しやすいだろう?」
「このプログラムをより読みやすくするために、どんなアプローチができるだろう?」
といったことを思考しつつ、「とりあえずは動く」だけで終わらない、現場に求められる品質を形にするための知識とテクニックを解説します。