関数を呼び出すときは、関数にパラメータを渡す必要があります。渡されたパラメータは実パラメータとなり、関数が定義されたときのパラメータは仮パラメータになります。前の章では、php カスタム関数のパラメーターを例を用いて説明しました この章では、関数間でパラメーターを渡す 3 つの方法、値による受け渡し、参照による受け渡し、およびデフォルトパラメーターに焦点を当てます。
1. 値渡し
実パラメータの値を対応する仮パラメータに代入します。演算の結果は実パラメータには影響しません。つまり、関数が戻った後、実際のパラメータの値は変わりません。値渡しプロセス中、呼び出される関数の仮パラメータは呼び出される関数のローカル変数として扱われます。つまり、メモリ空間がスタック内に開かれ、関数によって入力される実際のパラメータの値が格納されます。呼び出し元の関数なので、実際のパラメータのコピーになります。値転送の特徴は、呼び出される関数の仮パラメータに対する操作はすべてローカル変数として実行され、呼び出し元関数の実パラメータ変数の値には影響を与えないことです。 まず関数 example() を定義します。この関数は、渡されたパラメーター値に対していくつかの操作を実行して出力します。次に、実際のパラメーターである変数 $m を関数の外で定義し、最後に関数 example() を呼び出します。 $m)。仮引数$mと実引数$mの値をそれぞれ関数本体内と外に出力します。コード例は以下の通りです:
<?php function example($m){ $m = $m + 10; echo "在函数内部:m = ".$m ."<br>"; //输出形参的值 } $m = 1; example($m); // 将实参$m的值传递给形参$m echo "在函数外部:m = ".$m; // 实参的值没有变化,$m = 1 ?>関数の実行結果は以下の通りです:
2. 参照渡し
参照渡しとはメモリアドレスを渡すことです。実パラメータを仮パラメータに変換します。このとき、関数内の仮パラメータに対するすべての操作は、実パラメータの値に影響を与えます。関数が戻った後、実際のパラメータの値が変更されます。参照渡しを行う方法は、関数を定義するときに仮パラメータの前に「& 」記号を追加することです。参照渡しのプロセス中、呼び出された関数の仮パラメータもローカル変数としてスタック上のメモリ領域を開きますが、この時点で格納されるのは、呼び出し関数によって入力された実際のパラメータ変数のアドレスです。仮パラメータに対する呼び出された関数の操作はすべて、間接アドレス指定として処理されます。つまり、呼び出し関数内の実際のパラメータ変数には、スタックに格納されているアドレスを介してアクセスされます。このため、呼び出された関数が仮パラメータに対して実行する操作は、呼び出し側関数の実際のパラメータ変数に影響を与えます。
コード例は以下の通りです:
<?php function example(&$m){ //定义一个函数,同时传递参数$m的地址 $m = $m + 10; echo "在函数内部:m = ".$m ."<br>"; //输出形参的值 } $m = 1; example($m); // 将实参$m的地址传递给形参$m echo "在函数外部:m = ".$m; // 实参的值发生了变化,$m = 11 ?>関数の実行結果は以下の通りです:
3. デフォルトパラメータ(オプションパラメータ)
を設定する方法もあります。パラメータ、つまりパラメータの選択です。パラメータをオプションとして指定し、そのオプションのパラメータをパラメータ リストの最後に配置し、そのデフォルト値が空であることを指定できます。 アプリケーション例では、オプションのパラメーターを使用して、単純な価格計算関数を実装します。カスタム関数値のパラメータ $tax をオプションのパラメータとして設定します。デフォルト値は空です。 初めて関数が呼び出され、パラメーター $tax に値が割り当てられると、価格が出力されます。関数が 2 回目に呼び出されるときは、パラメーターはコピーされず、価格が出力されます。コードは次のとおりです:
<?php function value($price, $tax=""){ //定义一个函数,第二个参数为空 $price = $price*$tax; echo "价格:$price<br>"; //输出价格 } value(10,5); // 为可选参数赋值5 value(10); // 没有给可选参数赋值 ?>出力結果は次のとおりです:
価格: 50
価格: 0
注: デフォルトパラメータを使用する場合、デフォルトパラメータはデフォルト以外のパラメータの右側に配置されます。そうしないと、関数でエラーが発生する可能性があります。 注: PHP5 以降では、デフォルト値も参照によって渡すことができます。次の章では、カスタム関数の戻り値とは何かについて紹介します。
【おすすめ関連チュートリアル】1.「php.cn Dugu Jiijian (4) - PHPビデオチュートリアル」
2.PHPプログラミングの入門からマスターまでの完全なビデオチュートリアル
以上がPHPカスタム関数のパラメータを関数間で受け渡す3つの方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。