Dreamweaver TechniqueJAVA Script サンプル | CSS sample | JAVA Applet sample | Flash Sample
HTML4.0 reference | DynamicHTMLXHTML | XML sample | XSLT sample | RIKO's ASP Trial
ASP ADO リファレンス | PHP関数リファレンス | MySQL関数リファレンス

引数の参照渡し

■ 引数の参照渡し

通常、関数の引数は値で渡しますが、リファレンスを渡すこともできます。リファレンスを渡すには、関数を定義する際に仮引数にアンパサンド「&」をつけます。
通常の場合は、引数として渡された値を関数内部でどのように変更しても、関数の外側にある変数の値は変わりません。(値渡し)
一方、リファレンスで引数を渡すと、関数の外側で定義した変数の値を変化させることができます。(参照渡し)

 

<?php
   $a = 1;
   $b = 1;

   function test($x, &$y)
   {
      $x = 10;
      $y = 10;
   }

   // header("Content-Type: text/plain; charset=EUC-JP");
   test($a, $b);
   echo '$a = ' . $a . "\n"; // 1のままになる
   echo '$b = ' . $b . "\n"; // 10になる
?>

なお、PHP4では次のように関数の引数にリファレンスを指定して参照渡しを行うこともできました。

function test( $x, $y)
{
      $x = 10;
      $y = 10;
}

test($a, &$b)

しかし、この方法は今後廃止される方向で関数を定義する時に仮引数に「&」をつける方法が推奨されています。
PHP5では、php.iniで「allow_call_time_pass_reference = On」としないかぎり、関数の引数にリファレンスを指定することはできません。

<戻る

R HOUSE | RIKO's Trial Page | Shirley's Pettit Case | Shirley's i-box | Shirley's little box

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル