参照による呼び出しは、関数のパラメーターとして変数の参照を渡すことです。 PHP はポインタのような仕組みを直接サポートしていないため、参照をサポートしてさまざまな操作を扱います。 PHP 言語では、関数内の値が変更されると、その保持変数の実際の値も変更されます。これは値による呼び出しでは実現できません。アンパサンド (&) 記号は、call be a Reference で変数を参照として渡すときにプレフィックスとして使用できます。 & 記号自体は、変数が参照として使用されていることを表します。参照関数をパラメータとして別の関数に渡すこともできます。このトピックでは、PHP 参照による呼び出しについて学習します。
広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
これを使用するための特別な構文はありませんが、関数にパラメーターを渡すときに & 記号を使用する必要があります。
関数宣言は次のようになります:
function callByref(&$var) { $var.= 'inside the Call By Reference function.'; }
この関数を呼び出すときに特別なことは必要ありません。これは通常の関数と同じように使用できます (値による呼び出し)。
$var = 'Yes, I am'; callByref ($var);
参照による呼び出しの動作を進める前に、関数に適合させるための要件が必要である必要があります。次に、その指定された関数の宣言で、パラメーター変数への参照符号を使用できます。簡単な例で同じことを理解しましょう。
function callByref(&$var) { $var.= 'Call By Reference function.'; } $var = 'Try to check the reference, I am inside the ';
ここで $var を出力しようとすると、上記のメッセージが表示されます
echo $var; // printing variable before calling function
今関数を呼び出すと、この関数を呼び出すと変数の実際の値が変更されます
関数内に記述された$var。
callByref ($var); echo $var; // this will be print the combined value of the string.
以下の PHP 言語では、参照による呼び出しとして使用できます:
さまざまな例を以下に示します:
参照による呼び出しを使用してこの関数の性質をチェックする単純なプログラム。ここでは、参照による呼び出しを使用し、関数内から変数を変更した後、実際の値が変更されていることを確認できます。
コード:
<?php function callByref(&$var) { $var.= ' This will be added to the function.'; } $var = 'Value before calling the function.'; echo $var ."<br><br>"; // printing variable before callig function callByref ($var); echo $var; ?>
出力:
コード例は、PHP での値による呼び出しと参照による呼び出しを区別しています。
コード
<?php // call by value function echo "<br>Swap functionality by call be value:<br>"; function SwapCallByValue($a, $b){ $c=$a; $a=$b; $b=$c; echo ""; echo "<br>Value of a and b after swap: "; echo $a . " ".$b; } $a = 10; $b = 20; echo "Value of a and b before swap: "; echo $a . " ".$b; SwapCallByValue($a, $b); // swap functionality by call be a reference echo "<br><br>Swap functionality by call by reference:<br>"; function SwapCallByRefernce(&$a,&$b) { $c=$a; $a=$b; $b=$c; } $a = 10; $b = 20; echo "Value of a and b before swap: "; echo $a . " ".$b; SwapCallByRefernce($a, $b); echo "<br>Value of a and b after swap: "; echo $a . " ".$b; ?>
出力:
上記の例でわかるように、a と b の値を関数の外で出力する場合、call-by-swap は機能しません。これは、値による呼び出しでは変数の実際のコピーが変更されないためです。しかし、参照による呼び出しでは、その関数を呼び出した直後に a と b の値を出力しており、スワップが正常に機能していることがわかります。これは、値による呼び出しと参照による呼び出しによるスワップ関数を扱う間のすべてです。
コード:
<?php // this is the main function inside which the a funtion will be passed as a parameter function mainFunction(&$val) { $val++; echo $val; } // this function will be used as a parameter function &FunctionAsAParam() { $val = 15; return $val; } echo "A value of a after calling the function: "; $result = mainFunction(FunctionAsAParam()); // calling function, function as a reference parameter ?>
出力:
上記の例では、参照関数 FunctionAsAParam() が別の関数パラメーターとして使用されていることがわかります。この中に書かれたコードに従って、メイン変数の値を割り当てます。関数 mainFunction() は上記のコードのメイン関数であり、FunctionAsAParam() を参照関数パラメーターとして使用した後、値の値を増加させています。この関数を参照パラメーターとして使用するには、さまざまな方法があります。
参照による呼び出しでは、この関数の呼び出し時ではなく、作成時にパラメーターに & 記号が使用されます。 C 言語や C++ 言語では、PHP とは異なり、通常、この関数の呼び出し時に使用されます。 PHP の参照による呼び出しは、変数の実際のコピーを変更する関数を作成または呼び出すことを意味します。したがって、PHP でエラーが発生する場合、呼び出し時に参照符号は必要ありません。
以上がPHP 参照による呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。