PHP 参照による呼び出し

WBOY
リリース: 2024-08-29 12:47:50
オリジナル
1072 人が閲覧しました

参照による呼び出しは、関数のパラメーターとして変数の参照を渡すことです。 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);
ログイン後にコピー

PHP では参照による呼び出しはどのように機能しますか?

参照による呼び出しの動作を進める前に、関数に適合させるための要件が​​必要である必要があります。次に、その指定された関数の宣言で、パラメーター変数への参照符号を使用できます。簡単な例で同じことを理解しましょう。

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 言語では、参照による呼び出しとして使用できます:

  • 変数 – 通常の変数。
  • 参照を返す関数 – 参照を返す明確に定義された関数は、参照渡しの呼び出しで関数パラメーターとして渡すこともできます (例 E3 を参照)。

参照による呼び出しの例

さまざまな例を以下に示します:

例 #1

参照による呼び出しを使用してこの関数の性質をチェックする単純なプログラム。ここでは、参照による呼び出しを使用し、関数内から変数を変更した後、実際の値が変更されていることを確認できます。

コード:

<?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 参照による呼び出し

例 #2

コード例は、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;
?>
ログイン後にコピー

出力:

PHP 参照による呼び出し

上記の例でわかるように、a と b の値を関数の外で出力する場合、call-by-swap は機能しません。これは、値による呼び出しでは変数の実際のコピーが変更されないためです。しかし、参照による呼び出しでは、その関数を呼び出した直後に a と b の値を出力しており、スワップが正常に機能していることがわかります。これは、値による呼び出しと参照による呼び出しによるスワップ関数を扱う間のすべてです。

例 #3

コード:

<?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
?>
ログイン後にコピー

出力:

PHP 参照による呼び出し

上記の例では、参照関数 FunctionAsAParam() が別の関数パラメーターとして使用されていることがわかります。この中に書かれたコードに従って、メイン変数の値を割り当てます。関数 mainFunction() は上記のコードのメイン関数であり、FunctionAsAParam() を参照関数パラメーターとして使用した後、値の値を増加させています。この関数を参照パラメーターとして使用するには、さまざまな方法があります。

結論

参照による呼び出しでは、この関数の呼び出し時ではなく、作成時にパラメーターに & 記号が使用されます。 C 言語や C++ 言語では、PHP とは異なり、通常、この関数の呼び出し時に使用されます。 PHP の参照による呼び出しは、変数の実際のコピーを変更する関数を作成または呼び出すことを意味します。したがって、PHP でエラーが発生する場合、呼び出し時に参照符号は必要ありません。

以上がPHP 参照による呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート