PHP プログラミング言語の参照渡しという言葉自体は、変数が参照渡しされるたびに、変数の引数の直前にアンパサンド記号 (&) が追加されることを示しています。ここでサンプル例「function(&$x)」を見てみましょう。ここでは、グローバル変数と関数変数のスコープは両方ともグローバル値になります。これは、これらが同じ参照概念を使用して定義されているためです。したがって、グローバル変数が変更されると、関数内の変数も変更され、その逆も同様であり、これらすべてに適用されます。
広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
構文とパラメータ
function function_name(&$function_parameter){ .. .. }
PHP パスバイリファレンスのパラメータの説明:
PHP プログラミング言語の参照渡しは、基本的に、変数の引数の直前にあるアンパサンド記号 (&) を使用して、参照によって変数をバイパスするだけで機能します。参照概念によって変数を渡す場合、関数は変数を変更する機能を持つことができます。このように、PHP の参照渡しの概念は機能し、コーディングの場合によっては知っておくべき重要な概念です。一部の PHP バージョンでは、参照渡しの概念がうまく機能しません。 PHP 5.3.0 では、「call-time pass-by-reference」という警告が表示されます。PHP 5.4.0 バージョンでは、call-time pass-by-reference が削除されるため、これを使用するといくつかの致命的なエラーが発生します。一部の PHP バージョンでは。
以下に挙げる例を示します:
これは、PHP プログラミング言語の参照渡しの概念を示す例です。ここではまず、関数「calculate()」がその参照関数パラメータ「$a1」とともに作成されます。次に、関数内でその変数値がインクリメントされます。そして、関数「$a1」の終了後、変数値は「5」として宣言されます。次に、エコー機能を使用して $a1 の値が出力され、calculate() 関数が呼び出されます。関数呼び出し後、再度echo関数が使用され、今度はインクリメントにより変数値が「6」と出力されます。
コード:
<?php function calculate(&$a1){ $a1++; } $a1=5; echo "This is the value of a1 variable before the function call :: "; echo $a1; echo "<br>"; echo "This is the value of a1 variable after the function call :: "; calculate($a1); echo $a1; ?>
出力:
これも PHP 言語の同じ概念を示す例ですが、ここでは例 1 と同様に数値を使用する代わりに文字列値が使用されています。 ここで、print_string() 関数にはアンパサンド記号の後に変数「string1」が付いています。次に、関数内で string1 変数の値を「関数酒」として代入し、string1 変数の値を出力するために使用します。次に、関数の外で、再び string1 変数の値が「グローバル酒」として割り当てられます。次に、再び $string1 変数が印刷機能を使用して印刷されますが、今回は関数内に存在する文字列値が印刷されますが、グローバル値は印刷されません。これは、PHP の概念と同じであるためです。
コード:
<?php // Here Function is used just for assigning the new value to // some $string1 variable and then printing it echo "This is the exampe of PHP pass by reference concept :: "; echo "<hr>"; function print_string( &$string1 ) { $string1 = "Function sake \n"; // Print $string1 variable print( $string1 ); echo "<br>"; } // Drivers code $string1 = "Global sake \n"; print_string( $string1 ); print( $string1 ); echo "<br>"; ?>
出力:
この例は例 2 に似ていますが、ここではアンパサンド記号が使用されていないのは、それが使用されなかった場合に何が起こるかを確認するためだけです。アンパサンドが使用されない場合は、値渡しの概念とも呼ぶことができます。したがって、機能を使用しない場合は、関数の変数パラメーターの前に & シンボルを使用することを忘れないでください。 2 番目の印刷出力では、参照渡しの概念がないため、「Global Sake」が表示されます。概念をよりよく理解するには、例 2 と例 3 の出力を確認してください。
コード:
<?php // Here Function is used just for assigning the new value to // some $string1 variable without using ampersand and then printing it echo "This is the example of PHP pass by reference concept but exempted ampersand symbol :: "; echo "<hr>"; function print_string( $string2 ) { $string2 = "Function sake \n"; // Print $string1 variable echo "This is the function's variable parameter value inside function :: "; print( $string2 ); echo "<br>"; } // Drivers code $string2 = "Global sake \n"; print_string( $string2 ); echo "This is the function's variable parameter value outside the function :: "; print( $string2 ); echo "<br>"; ?>
出力:
This is the example of implementing the swapping functionality with the help of the swap() function and the same concept of the PHP Programming Language. Here at first two variables a1 , b1 is created with numerical and string values. Then those numbers are swapped with the swap() function. Then inside of the function using an extra variable value are jumbled to one other for swapping functionality. Then swapping will be done with that function. You can check out the output in the output section to understand the pass by reference with the swapping mechanism of PHP.
Code:
<?php // ------------------------------------------ // This is sample Demo call of swap(...) function below. echo "This is the example of swapping two variable values using the pass by reference concept of PHP :: "; echo "<br>"; $a1 = 123.456; $b1 = 'abcDEF'; print "<pre class="brush:php;toolbar:false">Define:\na1 = $a1\nb1 = '$b1'"; swap($a1,$b1); print "
After swap(a1,b1):\na1 = '$a1'\nb1 = $b1"; // ------------------------------- function swap (&$arg11, &$arg12) { // Now Swapping the contents of the indicated variables. $w1=$arg11; $arg11=$arg12; $arg12=$w1; } ?>
Output:
I hope you learned what is the definition of PHP pass by reference along with its syntax and some explanation of the parameters, How the works in PHP Programming Language along with various examples of PHP to understand PHP pass by reference concept better.
以上がPHP 参照渡しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。