23
A
回答
40
這是一個通過參考。函數內的變量將「指向」與調用上下文中的變量相同的數據。
function foo(&$bar)
{
$bar = 1;
}
$x = 0;
foo($x);
echo $x; // 1
5
它接受對變量的引用作爲參數。
這意味着函數對所述參數的任何變化(例如,$var = "Hi!"
)會影響由調用功能傳遞的變量。
15
基本上如果你在功能裏面改變$var
,它會被改變以外。例如:
$var = 2;
function f1(&$param) {
$param = 5;
}
echo $var; //outputs 2
f1($var);
echo $var; //outputs 5
2
一個變量(& $ 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.
2
2
你逝去的是$ var作爲參考,這意味着$ var的實際價值被更新時,它被噓函數內部修飾
例如:
function boo(&$var) {
$var = 10;
}
$var = 20;
echo $var; //gets 20
boo($var);
echo $var //gets 10
-1
如果任何函數符號開始(&)它意味着它通過引用函數調用。它將返回一個對變量的引用而不是該值。
function reference_function(&$total){
$extra = $total + 10;
}
$total = 200;
reference_function($total) ;
echo $total; //OutPut 210
相關問題
- 1. 函數參數之後和函數體之前的char * in_str是什麼意思?
- 2. 在函數聲明之前使用否定的目的是什麼?
- 3. 什麼是在函數聲明之前有一個〜的函數?
- 4. 爲什麼y在n之前的ncurses函數和參數?
- 5. 在JavaScript函數中使用忽略參數的目的/好處是什麼?
- 6. 什麼是在Dojo domConstruct.toDom函數中使用的文檔參數?
- 7. {}在函數調用中的參數之前表示什麼? key_equal {}(key1,key2);
- 8. 函數參數是什麼?
- 9. 解析函數參數的目的是什麼?
- 10. OpenCV:WarpPerspective函數的參數是什麼?
- 11. beforeSend jquery函數的參數是什麼?
- 12. nodejs使用的Error構造函數的參數是什麼?
- 13. 添加參數的函數調用該函數之前 - Node.js的
- 14. int const函數(參數),int函數(const參數)和int函數(參數)const之間的區別是什麼?
- 15. 在PHP頭函數之前什麼是可以接受的?
- 16. 什麼是參數和調用函數調用函數之間的不同與其他參數的返回值
- 17. 在javascript函數中使用它的目的是什麼?
- 18. 在C++函數簽名後使用throw的目的是什麼?
- 19. 爲什麼x之前+「的數字是」
- 20. `complete`參數的目的是什麼?
- 21. Main()爲什麼在函數定義之前調用函數?
- 22. 是在其參數之前執行的包含函數嗎?
- 23. 什麼是ClientBuildManager構造函數的「目標文件夾」參數?
- 24. 用函數本身使用的不同命名參數聲明函數的目的是什麼?
- 25. atexit函數的目的是什麼?
- 26. eval函數的目的是什麼?
- 27. '身份函數'的目的是什麼?
- 28. 函數之前有什麼含義參數?
- 29. 什麼是r-前綴的函數?
- 30. 爲什麼我的函數在函數範圍之外改變它的參數?
我必須開始使用`foo`和`bar`在我的例子.. – cambraca 2010-11-26 01:15:48
所以它的行爲類似於使用`$全球var` – Alex 2010-11-26 01:18:01
@Alex時,那種真實的,但有兩個大差異:1)它適用於非全局範圍(調用其他函數的函數)和2)它不依賴於知道變量名稱的內部函數。作爲函數參數的引用比全局變量更易於調試並且不易出錯,儘管一些相同的問題(例如,變量的意外更改)仍然適用。 – Matthew 2010-11-26 01:20:41