php

引数

前回、関数について書きましたが、関数には
便利な機能があります。関数を呼びだすときに、

呼び出し元から関数内に情報(値)を渡して
その値に応じた処理を行う

ことができます。関数に渡す情報を引数(argument)と
いい、下記のようにかきます。

function msg($product){
    echo "{$product}を";
    echo "お買い上げ有難うございます。
";
}

msg()関数は、呼び出し元から呼ばれるときに、関数内の値をひとつ
渡すように定義しています。関数内の()内に書いた「$product」が、
引数と呼ばれていて、引数productは、この関数内に限り
使用することができます。
変数$product(引数)は、関数が呼びだれたときにハコが用意され、
呼び出し元から渡される値が格納されます。なので、
変数$product(引数)は関数内で

利用することができるようになっています。

サンプルコードの実行結果はこちら

サンプルコードで確認できますが、関数を呼びだすたびに、
渡した引数に応じた値が出力がされています。
このように、同じ関数でも渡した引数の値によって異なる
処理を行うことができ、柔軟な処理を行うことができます。
関数本体で定義されている引数(変数)を仮引数(parameter)と
呼んでいます。一方で、関数の呼び出し元から渡される引数を実引数
呼んでいます。

今回はmsg("りんご")のように、文字列を渡しましたが、
msg($product)のように実引数を変数とすることもできます。
また、
実引数の変数名と仮引数の変数名は同じでなくてもいいです。

値渡しと参照渡し

値渡し:呼び出し元の変数と呼び出し先の変数が異なるものです。
そのため、msg()の中で、$productに「もも」と代入しても
元の変数$foodの値が、「ぶどう」から「もも」に変更はされません。

仮引数に「&」をつけておくと、呼び出し元の変数の値ではなく、
その場所が渡され、呼び出し先と呼びだし元の変数は同じものを指します。
そのとき、
呼び出し先で変数の値を変更すると、
呼び出し元の変数の値を変更されます。
この方法を参照渡し(by reference)といいます。

-php
-,