答えて
参照渡しです。関数内の変数は、呼び出しコンテキストからの変数と同じデータを指す。
function foo(&$bar)
{
$bar = 1;
}
$x = 0;
foo($x);
echo $x; // 1
パラメータとして変数への参照を受け入れます。
これは、関数がパラメータに対して行う変更(たとえば、)が、呼び出し元関数によって渡された変数に影響することを意味します。
基本的には、機能内で$var
を変更すると、外側に変更されます。たとえば:
$var = 2;
function f1(&$param) {
$param = 5;
}
echo $var; //outputs 2
f1($var);
echo $var; //outputs 5
ありがとう、非常にはっきりと書かれています。 –
変数(& $ fooという)の前にアンパサンド(&)があなたの代わりに参照することにより、変数を渡したいことを指定する値でパスを上書きします。例えば
あなたはこれを持っている場合:
function doStuff($variable) {
$variable++;
}
$foo = 1;
doStuff($foo);
echo $foo;
// output is '1' because you passed the value, but it doesn't alter the original variable
doStuff(&$foo); // this is deprecated and will throw notices in PHP 5.3+
echo $foo;
// output is '2' because you passed the reference and php will alter the original variable.
それは両方の方法を動作します。
function doStuff(&$variable) {
$variable++;
}
$foo = 1;
doStuff($foo);
echo $foo;
// output is '2' because the declaration of the function requires a reference.
+1。これがCでポインタが意味するものであれば上記を読んだときに不思議でした。あなたの確認で今は完璧な意味があります。 – Kaji
あなたは更新されるの$ VARの実際の値を意味し、リファレンスとしての$ VARを渡している例が
:
function boo(&$var) {
$var = 10;
}
$var = 20;
echo $var; //gets 20
boo($var);
echo $var //gets 10
任意の関数は、アンパサンドで始まる場合(&) 、それはReference関数による呼び出しを意味します。値の代わりに変数への参照を返します。
私は `foo`、私の例では、` bar`を使用して起動するんだfunction reference_function(&$total){
$extra = $total + 10;
}
$total = 200;
reference_function($total) ;
echo $total; //OutPut 210
- 1. mysqlの-u引数の目的は何ですか?
- 2. setsockoptのoption_len引数の目的は何ですか?
- 3. 関数の引数の前にあるclassキーワードは何ですか?
- 4. 目的関数cでasin()関数を使用する方法
- 5. この方法で無名関数に引数を渡す目的は何ですか?
- 6. 関数の引数にあるPHPのフラグは何ですか?
- 7. jQueryの無名関数ラッパーの目的は何ですか?
- 8. Djangoの "deconstruct"モデルフィールド関数の目的は何ですか?
- 9. knockout.jsライブラリのexportProperty関数の目的は何ですか?
- 10. OOPでの静的関数の使用は何ですか?
- 11. 関数tryブロックの目的は何ですか?
- 12. Ref-qualifiedメンバ関数の目的は何ですか?
- 13. ステップ関数を使用した目的関数の最適化
- 14. iOSアプリケーションで目的のcランタイム関数を使用する
- 15. 目的関数Cのクラス引数をセレクタに渡す方法は?
- 16. Clojure:関数の引数リストで[_]は何をしますか?
- 17. PHP関数の引数で変数を使用する方法?
- 18. Zend Framework Routeインスタンシエーションの第4引数の目的は何ですか?
- 19. rubyのCSV.open()の2番目のパラメータ/引数は何ですか?
- 20. 目的関数CのEXC_BAD_EXCESSがゲッターを使用する場合
- 21. 「アイデンティティ関数」の目的は?
- 22. 「最小幅の整数定数用のマクロ」の目的は何ですか?
- 23. PHPで関数の引数として使用される変数代入は何を意味しますか?
- 24. 目的関数に複数の引数がある場合、scipy.optimize minimize_scalarの使い方は?
- 25. オプションの依存関係の引数を目的関数のフレームワーク関数のパラメータとして渡す方法
- 26. Python:評価関数を使用せずに動的に関数の引数を生成する方法
- 27. extjs4.1でinitComponent関数を使用するのは何ですか?
- 28. 関数で上書きされるjavascriptパラメータの目的は何ですか?
- 29. メイン関数以外のCPPでコマンドライン引数を使用する
- 30. JavaScript関数で無制限の引数を使用する
.. – cambraca
ので、それは一種の真の、 'グローバルの$ var' – Alex
@Alexを使用したときと同様に動作しますが、大きな二つがあります違い:1)非グローバルスコープ(他の関数を呼び出す関数)で動作し、2)変数の名前を知っている内部関数に依存しない。関数の引数としての参照は、デバッグが容易で、グローバル変数よりもエラーが起こりにくいものの、同じ懸念事項(変数の予期しない変更など)の一部が依然として適用されます。 – Matthew